Heim >Backend-Entwicklung >Golang >Wie können wir Testcode aus importierten Paketen in Go wiederverwenden?

Wie können wir Testcode aus importierten Paketen in Go wiederverwenden?

Linda Hamilton
Linda HamiltonOriginal
2024-11-04 07:12:30514Durchsuche

How Can We Reuse Test Code from Imported Packages in Go?

Wiederverwendung von Testcode in importierten Paketen

Bei der Verwaltung einer komplexen Codebasis ist die Fähigkeit zur Wiederverwendung von Testcode für effiziente und wartbare Testpraktiken von entscheidender Bedeutung . In diesem Artikel wird eine häufige Herausforderung untersucht, mit der Entwickler konfrontiert sind: die Wiederverwendung von Testcode aus einem importierten Paket.

Stellen Sie sich das folgende Szenario vor: Ein Projekt hat die folgende Verzeichnisstruktur:

/
|-- main.go
|-- main_test.go
|-- pkg1
    |-- pkg1_test.go

main.go-Importe pkg1 und enthält Code, der auf nicht exportierten Funktionen in pkg1 basiert. pkg1_test.go enthält eine Dienstprogrammfunktion, verifyTaskNumber, die eine interne Funktion in pkg1 aufruft. main_test.go muss jedoch „VerifyTaskNumber“ in seinen eigenen Tests verwenden.

Um dieses Problem zu beheben, werden zwei mögliche Lösungen vorgeschlagen:

  1. Verschieben Sie „VerifyTaskNumber“ nach pkg1.go. Dadurch kann main_test.go direkt auf die Funktion zugreifen. Allerdings ist „VerifyTaskNumber“ möglicherweise in der von Go Build generierten Binärdatei enthalten, sodass für Tests nicht darauf zugegriffen werden kann.
  2. Erstellen Sie ein separates Testutility-Paket, das „VerifyTaskNumber“ enthält, und importieren Sie es sowohl in main_test.go als auch in pkg1_test.go. Dadurch wird zwar der Zugriff auf die Funktion ermöglicht, es entsteht jedoch eine Abhängigkeit von testutility, das wiederum von pkg1 abhängt.

Keine Lösung bietet einen nahtlosen und effizienten Ansatz zur Wiederverwendung von Testcode. Eine alternative Lösung besteht darin, verifyTaskNumber in ein Utils-Paket zu verschieben, das sowohl in main_test.go als auch in pkg1_test.go importiert wird. Um der Abhängigkeit von nicht exportierten Funktionen in pkg1 Rechnung zu tragen, können die Ergebnisse der internen Funktion in einer Supportdatei gespeichert und vom Paket utils geladen werden. Dadurch wird die Abhängigkeit von der nicht exportierten Funktion vermieden und gleichzeitig der Zugriff auf das Testdienstprogramm in mehreren Testpaketen ermöglicht.

Das obige ist der detaillierte Inhalt vonWie können wir Testcode aus importierten Paketen in Go wiederverwenden?. 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