يوفر Go حزمة اختبار تحتوي على العديد من الأدوات لأغراض اختبار الوحدة.
تحضير
دعونا نتدرب فقط، ونقوم أولاً بإعداد بنية مكعبة، وسيتم استخدام متغير الكائن الناتج للبنية لاحقًا كمواد اختبار.
package main import "math" type Cube struct { Sisi float64 } func (k Cube) Volume() float64 { return math.Pow(k.Sisi, 3) } func (k Cube) Area() float64 { return math.Pow(k.Sisi, 2) * 6 } func (k Cube) circumference() float64 { return k.Sisi * 12 }
احفظ الكود أعلاه في ملف Training1.go
package main import "testing" var ( cube Cube = Cube{4} volume Should float64 = 64 area Should float64 = 96 circumference Should float64 = 48 ) func TestCalculateVolume(t *testing.T) { t.Logf("Volume : %.2f", cube.Volume()) if cube.Volume() != volumeShould { t.Errorf("WRONG! should be %.2f", volumeShould) } } func TestCalculateSurface(t *testing.T) { t.Logf("Area : %.2f", cube.Area()) if cube.Area() != areaShould { t.Errorf("WRONG! should be %.2f", areaShould) } } func TestCalculatePerimeter(t *testing.T) { t.Logf("Perimeter : %.2f", cube.Perimeter()) if cube.Perimeter() != circumferenceShould { t.Errorf("WRONG! should be %.2f", circumferenceShould) } }
يتم استخدام طريقة t.Logf() لعرض السجل. هذه الطريقة تعادل fmt.Printf() .
يتم استخدام طريقة Errorf() لعرض سجل متبوعًا ببيان يفيد بحدوث فشل أثناء الاختبار.
طريقة تنفيذ الاختبار هي استخدام أمر go test. نظرًا لأن البنية التي يتم اختبارها موجودة في الملف bab55.go، عند تنفيذ الاختبار باستخدام go test، يجب كتابة أسماء الملفات bab55_test.go وbab55.go كوسيطات. يتم استخدام -v أو الوسيطة المطولة لعرض كافة مخرجات السجل أثناء الاختبار.
قم بتشغيل التطبيق كما هو موضح في الصورة أدناه، ويمكن ملاحظة أنه لم تفشل أي اختبارات. حسنًا، حاول تغيير صيغة الحساب لطريقة Keliling(). الغرض من هذا التغيير هو معرفة كيفية ظهور علامة الفشل عند فشل الاختبار.
func (k Cube) Perimeter() float64 { return k.Side * 15 }
بعد ذلك قم بإجراء الاختبار مرة أخرى.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3