Konstanten in Go zum Testen neu definieren
Problembeschreibung:
In Go stellen Konstanten unveränderliche Werte bereit, die kann nach der Erklärung nicht mehr geändert werden. Beim Testen von Code, der auf diesen Konstanten basiert, wird es jedoch schwierig, zu Testzwecken unterschiedliche Werte einzufügen.
Vorgeschlagene Lösung:
Eine mögliche Lösung liegt in der Umgestaltung des einzuschließenden Codes eine zweite Funktion, die die Basis-URL als Parameter verwendet und die ursprüngliche Funktion mit dem konstanten Wert als Argument aufruft.
Implementierungsdetails:
Führen Sie eine Hilfsfunktion ein:
Ersetzen Sie die Konstante baseUrl_ durch eine Funktion, die die Basis-URL als Argument akzeptiert:
<code class="go">func myFuncImpl(baseUrl string) string { // Use `baseUrl` in the function }</code>
Ändern Sie die Originalfunktion:
Lassen Sie die Originalfunktion (MyFunc()) die Hilfsfunktion aufrufen:
<code class="go">func MyFunc() string { return myFuncImpl(baseUrl_) }</code>
Behalten Sie die Konstante bei:
Vorteile:
Beispiel:
<code class="go">const baseUrl_ = "http://google.com" func MyFunc() string { return myFuncImpl(baseUrl_) }</code>
Im Testcode kann myFuncImpl() direkt aufgerufen und benutzerdefinierten Werten zugewiesen werden baseUrl:
<code class="go">func TestMyFunc(t *testing.T) { result := myFuncImpl("http://example.org") // Assertions and tests }</code>
Das obige ist der detaillierte Inhalt vonWie können wir von Konstanten abhängige Go-Funktionen testen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!