🐹 شرح Go

كتابة الاختبارات

الاختبار مدمج في Go

ضع الاختبارات في ملف ينتهي بـ _test.go:

// math.go
func Add(a, b int) int { return a + b }
// math_test.go
package main

import "testing"

func TestAdd(t *testing.T) {
  result := Add(2, 3)
  if result != 5 {
    t.Errorf("توقّعت 5 لكن حصلت على %d", result)
  }
}

التشغيل

go test            # اختبر الحزمة
go test -v         # بتفاصيل
go test ./...      # كل المشروع
go test -cover     # نسبة التغطية

الاختبارات الجدولية (اصطلاح Go)

func TestAdd(t *testing.T) {
  cases := []struct {
    a, b, want int
  }{
    {2, 3, 5},
    {0, 0, 0},
    {-1, 1, 0},
  }
  for _, c := range cases {
    if got := Add(c.a, c.b); got != c.want {
      t.Errorf("Add(%d,%d)=%d توقّعت %d", c.a, c.b, got, c.want)
    }
  }
}

Benchmark — قياس الأداء

func BenchmarkAdd(b *testing.B) {
  for i := 0; i < b.N; i++ {
    Add(2, 3)
  }
}
go test -bench=.

💡 لا حاجة لمكتبات خارجية — الاختبار جزء من اللغة، وهذا من أسباب شعبية Go.

🎯 التالي: خلاصة مسار Go.