Avatar ·

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