Korrekte Benennung von Paketen für Tests in Go (unit-testing)
Hallo Kollegen! Ich bin neu in Go und versuche zu verstehen, wie man Pakete für Tests richtig benennt. Ich habe ein Projekt mit folgender Struktur:
```
myapp/
├── internal/
│ ├── calculator/
│ │ ├── calc.go
│ │ └── calc_test.go
│ └── validator/
│ ├── valid.go
│ └── valid_test.go
├── cmd/
│ └── main.go
└── go.mod
```
In `calc.go` habe ich das Paket `package calculator` deklariert. In `calc_test.go` habe ich ebenfalls `package calculator` geschrieben, und die Tests funktionieren. Aber ich habe gesehen, dass einige Entwickler `package calculator_test` für Testdateien verwenden. Was ist der Unterschied? Wann sollte man `_test` im Paketnamen verwenden und wann nicht?
Mich verwirrt, dass ich bei Verwendung von `package calculator_test` nicht auf nicht exportierte Funktionen und Variablen aus dem getesteten Paket zugreifen kann. Zum Beispiel habe ich eine nicht exportierte Funktion `addInternal()` in `calc.go`, die ich testen möchte. Wenn ich `package calculator_test` schreibe, gibt Go einen Kompilierungsfehler aus. Aber