Wiederverwendbarer Testcode in importierten Paketen
Im bereitgestellten Szenario verfügen Sie über eine Testdatei (main_test.go), die Zugriff auf a erfordert Nur-Test-Funktion in einem anderen Paket (pkg1_test.go). Dies stellt die Herausforderung dar, Testcode in importierten Paketen wiederzuverwenden.
Mögliche Lösungen und ihre Nachteile:
-
Funktionen nach pkg1.go verschieben: Dadurch werden die Funktionen für main_test.go verfügbar, sie werden jedoch möglicherweise Teil der Binärdatei unerwünscht.
-
Verwenden Sie ein separates Testutility-Paket: Dadurch können Sie zwar nur Testfunktionen gruppieren, es führt jedoch zu einer Abhängigkeit von internen Methoden in pkg1, was zu potenziellen Problemen führt.
Empfohlene Lösung:
Anstatt eine der oben genannten Methoden zu verwenden Methoden, ziehen Sie den folgenden Ansatz in Betracht:
-
Erstellen Sie ein Support-Paket: Verschieben Sie die Nur-Test-Funktionen in ein neues Paket namens Support. Dieses Paket sollte nur auf öffentlichen Schnittstellen von pkg1 basieren.
-
Verwenden Sie eine Supportdatei: Definieren Sie zur Unterstützung eine Supportdatei, die die Ausgabe der privaten Funktion von pkg1 enthält.
-
Support-Datei in Support-Funktion laden: Erstellen Sie im Support-Paket eine Funktion, die die Support-Datei lädt und die erforderlichen Schritte ausführt Operationen.
- **Supportfunktion von main_test.go aufrufen:** Importieren Sie das Supportpaket in main_test.go und rufen Sie die Funktion auf, die die private Funktion von pkg1` verwendet.
Diese Lösung:
- Hält reinen Testcode vom Produktionscode getrennt.
- Stellt sicher, dass die interne Funktion von pkg1 bleibt privat.
- Vermeidet Probleme mit der Binärverteilung.
Das obige ist der detaillierte Inhalt vonWie kann man Testcode in importierten Paketen wiederverwenden und gleichzeitig die internen Funktionen privat halten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn