اختبارات متقدمة
Advanced Testing
مفهوم
~22 دقيقة
اختبارات متقدمة — Advanced Testing
بعد إتقان الأساسيات والاختبارات الجدولية، ننتقل لأدوات أقوى: قياس الأداء، محاكاة الاعتماديات، واختبار خوادم HTTP.
اختبارات الأداء — Benchmarks
main.go
Output:
الأنواع الوهمية — Mocks & Stubs
في Go، الواجهات تجعل المحاكاة سهلة جداً — لا تحتاج مكتبة خاصة:
main.go
Output:
اختبار خوادم HTTP — httptest
حزمة httptest توفر خادم HTTP مُحاكى للاختبار:
main.go
Output:
خادم اختبار كامل — httptest.Server
main.go
Output:
TestMain — تهيئة وتنظيف
func TestMain(m *testing.M) {
// تهيئة قبل كل الاختبارات — Setup
fmt.Println("بدء التهيئة...")
db := setupTestDB()
// تشغيل الاختبارات — Run tests
code := m.Run()
// تنظيف بعد كل الاختبارات — Cleanup
db.Close()
fmt.Println("تم التنظيف")
os.Exit(code)
}
وسوم البناء للاختبارات — Build Tags
//go:build integration
// +build integration
package mypackage
// هذا الاختبار يعمل فقط مع:
// go test -tags integration
func TestDatabaseIntegration(t *testing.T) { ... }
تحدي — Challenge
أنشئ خادم اختبار يُرجع JSON واختبره