Heim > Backend-Entwicklung > Golang > Wie kann man Setup- und Demontagemethoden beim Testen von Go paketübergreifend teilen?

Wie kann man Setup- und Demontagemethoden beim Testen von Go paketübergreifend teilen?

王林
Freigeben: 2024-02-15 09:50:07
nach vorne
1062 Leute haben es durchsucht

在测试 Go 时如何跨包共享设置和拆卸方法?

Das Teilen von Einrichtungs- und Abbaumethoden über Pakete hinweg ist ein häufiges Problem beim Testen von Go. PHP-Editor Yuzai wird diese Frage für Sie beantworten. In der Go-Sprache können Sie das Paket „flag“ verwenden, um Befehlszeilenparameter festzulegen und abzurufen. Durch die Verwendung der Funktion „flag.Parse()“ in der Testdatei können die Befehlszeilenparameter analysiert und in die entsprechenden Variablen gesetzt werden. Für Testszenarien, die gemeinsame Einstellungen erfordern, können globale Variablen in der Testdatei festgelegt und in jeder Testfunktion verwendet werden. Wenn der Test abgeschlossen ist, können Sie ihn in der Funktion „TestMain“ zerlegen und den ursprünglichen Einstellungszustand wiederherstellen. Dies ermöglicht gemeinsame Einrichtungs- und Abbaumethoden über Pakete hinweg.

Frageninhalt

Angenommen, ich habe zwei Pakete foobar. Jedes Paket enthält eine Datei und eine Testdatei:

foo
---widget.go
---widget_test.go
bar
---wingding.go
---wingding_test.go
Nach dem Login kopieren

Für diese beiden Tests (widget_test.go und Wingding_test.go) möchte ich nun etwas Setup-Code teilen. Ich weiß, dass ich diesen Code in jedes Paket in main_test.go einfügen kann. Aber ich möchte den Code natürlich nicht an zwei Stellen kopieren/einfügen. Wo kann ich diesen Code ablegen, damit er von Paketen gemeinsam genutzt werden kann?

Workaround

Fügen Sie es in foobar 在测试中导入的另一个包 baz ein anderes Paket baz ein, das im Test importiert wurde. Wir verwenden dies für den Datenbank-Setup- und Teardown-Code in unseren Tests.

Das obige ist der detaillierte Inhalt vonWie kann man Setup- und Demontagemethoden beim Testen von Go paketübergreifend teilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage