Testfunktionen aus Nicht-Testdateien aufrufen
In Go basiert das Testen auf bestimmten Konventionen und Methoden. Eine dieser Konventionen besteht darin, dass Tests in eigene Testdateien unterteilt werden sollten, die mit dem Suffix „_test.go“ enden müssen.
Können Testfunktionen aus Nicht-Testdateien aufgerufen werden?
Kurze Antwort: Nein.
Im Gegensatz zu Ihrer Frage können Testfunktionen nicht direkt aus Nicht-Test-Go-Dateien aufgerufen werden. Diese Trennung stellt sicher, dass das Testen eindeutig und unabhängig vom zu testenden Code bleibt.
Testmuster in Go
Go verwendet hauptsächlich zwei Arten von Unit-Tests:
Beispiel
Betrachten Sie das folgende „Beispiel“-Paket mit einer exportierten „Summe“ Funktion und eine nicht exportierte „Hinzufügen“-Funktion:
package example func Sum(nums ...int) int { sum := 0 for _, num := range nums { sum = add(sum, num) } return sum } func add(a, b int) int { return a + b }
Black-Box-Test (example_test.go):
package example_test import ( "testing" "example" ) func TestSum(t *testing.T) { tests := []struct { nums []int sum int }{ {nums: []int{1, 2, 3}, sum: 6}, {nums: []int{2, 3, 4}, sum: 9}, } for _, test := range tests { s := example.Sum(test.nums...) if s != test.sum { t.FailNow() } } }
White-Box-Test (example_internal_test.go):
package example_test import "testing" func TestAdd(t *testing.T) { tests := []struct { a int b int sum int }{ {a: 1, b: 2, sum: 3}, {a: 3, b: 4, sum: 7}, } for _, test := range tests { s := add(test.a, test.b) if s != test.sum { t.FailNow() } } }
Zusammenfassend lässt sich sagen, dass der Aufruf von Testfunktionen aus Nicht-Testdateien gegen die Prinzipien des Go-Testens verstößt. Für Unit-Tests sollten separate Testpakete unter Einhaltung der etablierten Arbeitsabläufe und Konventionen verwendet werden.
Das obige ist der detaillierte Inhalt vonKönnen Sie Go-Testfunktionen aus Nicht-Testdateien aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!