Wie kann Testcode in importierten Paketen effektiv wiederverwendet werden?

Barbara Streisand
Freigeben: 2024-11-04 09:09:02
Original
179 Leute haben es durchsucht

How to Reuse Test Code in Imported Packages Effectively?

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
Nach dem Login kopieren

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:

  1. Funktionen in das importierte Paket verschieben: Diese Methode macht die Funktionen für alle Testdateien im Projekt verfügbar. Allerdings können die Funktionen in den kompilierten Binärdateien enthalten sein, was in diesem Fall unerwünscht ist.
  2. Erstellen eines Dienstprogramm-Testpakets: Dieser Ansatz beinhaltet das Verschieben der Funktionen in ein separates Test-Dienstprogrammpaket und Importieren Sie es in relevante Testdateien. Der Nachteil dieser Lösung besteht darin, dass die Funktionen im Dienstprogrammpaket möglicherweise auf internen Methoden aus dem importierten Paket basieren, auf die möglicherweise nicht zugegriffen werden kann.

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage