Avatar ·

التسمية الصحيحة للحزم للاختبار في 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` لا أستطيع الوصول إلى الدوال والمتغيرات غير المُصدرة من الاختبار.