التسمية الصحيحة للحزم للاختبار في Go (unit-testing)
مرحبًا أيها الزملاء! أنا مبتدئ في Go وأحاول فهم كيفية تسمية الحزم للاختبارات بشكل صحيح. لدي مشروع بهذا الهيكل:
```
myapp/
├── internal/
│ ├── calculator/
│ │ ├── calc.go
│ │ └── calc_test.go
│ └── validator/
│ ├── valid.go
│ └── valid_test.go
├── cmd/
│ └── main.go
└── go.mod
```
داخل `calc.go` لدي حزمة معلنة باسم `package calculator`. في `calc_test.go` كتبت أيضًا `package calculator`، والاختبارات تعمل. لكنني رأيت أن بعض المطورين يستخدمون `package calculator_test` لملفات الاختبار. ما الفرق؟ متى يجب استخدام `_test` في اسم الحزمة، ومتى لا؟
ما يربكني هو أنه عند استخدام `package calculator_test` لا أستطيع الوصول إلى الدوال والمتغيرات غير المُصدرة من الاختبار.