Testen von wiederverwendbarem Code in importierten Paketen
Bei der Arbeit mit mehreren Paketen und Testdateien kommt es häufig vor, dass Dienstprogrammfunktionen von wiederverwendet werden müssen von einem Test zum anderen. Betrachten Sie die folgende Verzeichnishierarchie:
/<br>|-- main.go // package main, ein HTTP-Server, der Anfragen akzeptiert und C/U-APIs in pkg1 aufruft, um bestimmte Aufgaben abzuschließen<br>|-- main_test.go // möchte veryfyTaskNumber in pkg1_test aufrufen<br>|-- pkg1 // Paket pkg1, CRUD-APIs mit Retrieve&Delete aus Sicherheitsgründen nicht exportiert</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">|-- pkg1_test.go // contains a function verifyTaskNumber(*testing.T, taskName string, expectedNo int) which calls internal Retrieve function in pkg1
In diesem Szenario muss main_test.go auf verifyTaskNumber() von pkg1_test.go zugreifen, was die folgende Herausforderung darstellt: Wie kann Testcode in importierten Paketen effektiv wiederverwendet werden?
Zwei gängige Ansätze sind:
Eine effektivere Lösung besteht darin, die Ausgabe des internen Pakets zu speichern Funktion im importierten Paket in eine Supportdatei. Diese Datei kann dann geladen werden, wenn die entsprechende Funktion im Dienstprogrammpaket aufgerufen wird.
Wenn pkg1 beispielsweise eine nicht exportierte Funktion Retrieve() hat, können Sie im Dienstprogrammpaket eine Funktion erstellen, die die Supportdatei lädt und ruft Retrieve() auf. Durch die Verwendung dieses Ansatzes können die Funktionen des Dienstprogrammpakets auf interne Methoden des importierten Pakets zugreifen, ohne die Modularität zu beeinträchtigen oder Artefakte zu erstellen.
Das obige ist der detaillierte Inhalt vonWie kann Testcode in importierten Paketen effektiv wiederverwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!