AzLearn

اختبارات متقدمة

Advanced Testing

مفهوم ~22 دقيقة

اختبارات متقدمة — Advanced Testing

بعد إتقان الأساسيات والاختبارات الجدولية، ننتقل لأدوات أقوى: قياس الأداء، محاكاة الاعتماديات، واختبار خوادم HTTP.

اختبارات الأداء — Benchmarks

main.go

الأنواع الوهمية — Mocks & Stubs

في Go، الواجهات تجعل المحاكاة سهلة جداً — لا تحتاج مكتبة خاصة:

main.go

اختبار خوادم HTTP — httptest

حزمة httptest توفر خادم HTTP مُحاكى للاختبار:

main.go

خادم اختبار كامل — httptest.Server

main.go

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