كيفية كتابة اختبار الوحدة في Golang؟

Kyfyt Ktabt Akhtbar Alwhdt Fy Golang



إذا كنت مطور Go ، فأنت تعلم مدى أهمية الاختبار لضمان جودة التعليمات البرمجية الخاصة بك. كتابة اختبارات الوحدة يعد جزءًا أساسيًا من عملية التطوير ، ويمكن أن يساعدك على اكتشاف الأخطاء في وقت مبكر ، مما يوفر لك الوقت والمال على المدى الطويل. في هذه المقالة ، سنناقش كيفية الكتابة اختبارات الوحدة في جولانج.

ما هو اختبار الوحدة؟

الخطوة الأولى هي فهم ماذا وحدة التجارب وسائل. وحدة التجارب يشير إلى عملية اختبار وحدات أو وحدات التعليمات البرمجية الصغيرة للتأكد من أن كل منها يعمل كما هو متوقع. وحدة التجارب تُستخدم لإزالة المشكلات من التعليمات البرمجية ، وتحسين استقرار الكود ، والتأكد من صحتها عند تحديث الكود. المرحلة الأولى من اختبار البرنامج هي اختبار الوحدة ، والذي يتبعه اختبار واجهة المستخدم واختبار التكامل.

حزمة الاختبار

في جولانج ، وحدة التجارب باستخدام حزمة تسمى اختبارات . توفر الحزمة وظائف مختلفة تسمح لنا باختبار الكود الخاص بنا. يمكن اختبار كود Go تلقائيًا بمساعدة حزمة الاختبار.







برنامج مثال للاختبار

نحتاج إلى بعض الأكواد لتحليل اختباراتنا قبل أن نتمكن من كتابة أي منها اختبارات الوحدة . سننشئ برنامجًا صغيرًا يضيف رقمين.



الحزمة الرئيسية

يستورد (
'FMT'
)
funcAdd ( أ int و ب int ) int {
يعود أ + ب
}

func الرئيسي ( ) {
FMT. Println ( يضيف ( 2 و 3 ) )
}

يحدد الكود أعلاه يضيف() وظيفة ، والتي تضيف رقمين ، أ و ب ، كمدخلات ومخرجات النتيجة في شكل عدد صحيح. إن إضافة الأرقام 2 و 3 هي كل ما تفعله الوظيفة الرئيسية قبل طباعة النتيجة.







اتفاقية اختبارات وحدة الكتابة أثناء التنقل

يجب أن يحتوي كل مشروع Go على ملف اختبار منفصل يحتوي على جميع الاختبارات لهذا المشروع. يجب أن يحمل الملف نفس اسم الملف الذي يتم اختباره ويجب أن يحمل _test.go يضاف إلى نهاية اسم الملف. على سبيل المثال ، إذا أردنا اختبار ملف باسم الحاسبة ، يجب علينا تسمية ملف الاختبار الخاص بنا calculator_test.go .

إنها ممارسة قياسية لـ اذهب لاختبار الملفات لتكون موجودة في نفس الحزمة أو الدليل مثل الكود الذي يقومون بتقييمه. عند استخدام الأمر go build ، لا يقوم المترجم بإنشاء هذه الملفات ، لذلك لا داعي للقلق بشأن ظهورها في عمليات النشر.



لكتابة أ اختبار الوحدة في Go ، نحتاج إلى استخدام ملف اختبارات طَرد. يمكننا بدء كل وظيفة اختبار بالكلمة امتحان ثم أضف وصفًا لما نريد اختباره. على سبيل المثال، TestAddition أو اختبار الطرح . يمكننا بعد ذلك كتابة رمز الاختبار الذي يتحقق مما إذا كانت الوظيفة التي نختبرها تُرجع النتائج المتوقعة.

في Go ، يجب أن تبدأ كل وظيفة اختبار بالعبارة t: = test.T {}. هذا البيان يخلق ملف اختبارات يمكننا استخدامه للتحقق مما إذا كان الاختبار قد نجح أو فشل. يمكننا بعد ذلك استخدام ملف تي إيرورف (اقتباسًا عن كتابه) وظيفة لطباعة رسالة خطأ إذا فشل الاختبار.

كيف تكتب كود الاختبار؟

عندما يتعلق الأمر بكتابة اختبارات الوحدة في Go ، فمن المهم أن تبدأ بتحديد الحزمة التي ترغب في اختبارها. بعد استيراد حزمة الاختبار ، يمكنك الوصول إلى أنواع وطرق مختلفة تصدرها الحزمة ، بما في ذلك ملف اختبار T. يكتب. ثم يتم كتابة منطق الاختبار نفسه في وظيفة تبدأ بالكلمة الأساسية 'امتحان' متبوعًا باسم وصفي ، مثل TestAdd () . ضمن هذه الوظيفة ، يمكنك تضمين رمز الاختبار وأي تأكيدات مطلوبة للتحقق من السلوك المتوقع.

باختصار ، خصائص الاختبار في Go هي كما يلي:

  • المعلمة الوحيدة والمطلوبة فقط هي ر * الاختبار
  • تبدأ وظيفة الاختبار بكلمة Test ثم تتبعها كلمة أو عبارة تبدأ بحرف كبير.
  • للإشارة إلى الفشل ، يجب أن تستدعي وظيفة الاختبار أيضًا تي ايرورف أو ر. فشل ، ولتوفير معلومات تصحيح أخطاء إضافية دون التسبب في فشل ، يمكن استخدام t.Log.
  • لتقديم معلومات تصحيح أخطاء غير فاشلة ، استخدم t.Log.
  • يتم تخزين الاختبارات في ملفات تحمل الاسم foo_test.go ، على سبيل المثال، math_test.go .

أغلق الملف بعد حفظه.

الحزمة الرئيسية

يستورد (
'اختبارات'
)

funcTestAdd ( ر * اختبارات. تي ) {
نتيجة : = يضيف ( 2 و 3 )
لو نتيجة ! = 5 {
ر. ارورف ( 'إضافة (2 ، 3) =٪ d ؛ تريد 5' و نتيجة )
}
}

ال يضيف() يتم اختبار الوظيفة بواسطة TestAdd () الوظيفة المحددة في هذا الاختبار. يستخدم الرقمين 2 و 3 للاتصال Add ، ثم يؤكد أن النتيجة هي 5. تتم طباعة رسالة خطأ إذا كانت النتيجة أقل من 5 عندما تي إيرورف (اقتباسًا عن كتابه) تم استدعاؤه.

أخيرًا ، من المهم معرفة أن Go لديه أداة اختبار مضمنة تسمى اذهب للاختبار. تقوم هذه الأداة بتشغيل جميع الاختبارات في المشروع وتوفر تقريرًا بالنتائج. اذهب للاختبار يجب كتابتها في الجهاز أثناء وجودك في دليل المشروع لبدء الاختبارات. نتيجة لذلك ، سيتم تشغيل جميع الاختبارات في هذا الدليل.

< قوي > اذهب للاختبار < امتحان - ملف - اسم > _امتحان. يذهب قوي >

نتائج اختبار الوحدة

سيُظهر لك الإخراج وظائف الاختبار التي نجحت أو فشلت أو تم تخطيها.

PASS أو موافق يشير إلى أن الكود يعمل على النحو المنشود. ستستلم يفشل إذا فشل الاختبار.

ال _test.go اللاحقة هي الوحيدة التي يتحقق منها الأمر الفرعي go test في الملفات. بعد ذلك ، انتقل إلى اختبار البحث في هذه الملفات (الملفات) عن أي وظائف خاصة ، مثل func TestXxx والعديد من الآخرين. يبني اختبار Go test ويستدعي هذه الوظائف بشكل صحيح ، وينفذها ويجمع النتائج ويبلغ عنها ، ثم ينظف كل شيء في حزمة رئيسية مؤقتة في النهاية.

الخطوة الأخيرة هي دمج اختباراتك في سير عمل التطوير الخاص بك. أفضل ممارسة هي إجراء اختباراتك في كل مرة تقوم فيها بإيداع التعليمات البرمجية الخاصة بك في أحد المستودعات. يضمن تكامل اختباراتك في سير عمل التطوير الخاص بك أن يتم اختبار التعليمات البرمجية بشكل مستمر ، ويتم حل أي مشكلات قبل النشر.

خاتمة

كتابة اختبارات الوحدة هو عنصر حاسم في تطوير البرامج لأنه يضمن أن تكون التعليمات البرمجية الخاصة بك قابلة للتطوير وعملية وفعالة. مكتبة اختبار Go سهلة الاستخدام ومباشرة. يجب أن تكون قادرًا على إنشاء Golang اختبارات الوحدة من أعلى مستويات الجودة باتباع الإجراءات المذكورة أعلاه. تذكر أن تقوم بدمج اختباراتك في سير عمل التطوير الخاص بك للتأكد من أن التعليمات البرمجية الخاصة بك يتم اختبارها بشكل مستمر ، وأن أي مشكلات يتم حلها قبل النشر.