So verwalten Sie den Initialisierungscode für Testabhängigkeiten
Feb 09, 2024 pm 06:00 PMphp-Editor Xinyi stellt Ihnen vor, wie Sie den Initialisierungscode von Testabhängigkeiten verwalten. Bei der Entwicklung von Software müssen Sie häufig verschiedene Testtools und Frameworks verwenden. Diese Tools und Frameworks erfordern möglicherweise Initialisierungscode zur Konfiguration und Vorbereitung. Die Art und Weise, wie Sie diesen Initialisierungscode verwalten, ist wichtig für die Wartbarkeit und Skalierbarkeit Ihrer Tests. Im Folgenden erfahren Sie ausführlich, wie Sie den Initialisierungscode von Testabhängigkeiten verwalten, um Softwaretests besser durchführen zu können.
Frageninhalt
Ich habe einen Protokollierungswrapper (implementiert mit Logrus unten) und verwende dieses Paket, um meine Anwendung zu protokollieren. Ich mache das, indem ich die Logger-Variable per Abhängigkeitsinjektion an jedes erforderliche Paket übergebe.
Hier muss ich beim Schreiben von Testfällen für jedes Paket etwas Code schreiben, um das Logger-Paket zu initialisieren. Wie können wir vermeiden, für jeden Testfall eines Pakets, das einen Logger verwendet, Initialisierungscode zu schreiben?
logger/log.go
1 2 3 4 5 6 7 8 9 |
|
app_test.go
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Hier muss ich für jedes Paket, das einen Logger verwendet, den Logger initialisieren, indem ich etwas wie setuplogruslogger
definiere. Gibt es eine Möglichkeit zu vermeiden, dass ich dies für jedes Paket, für das ich Tests schreibe, separat schreibe? setuplogruslogger
的内容来初始化记录器。有什么方法可以避免为我正在为其编写测试的每个包单独编写此内容?
解决方法
导出依赖初始化函数并在非 _test.go
_test.go
Exportieren Sie die Abhängigkeitsinitialisierungsfunktion und deklarieren Sie sie in einer Nicht-
Und solange Sie ein solches Testdienstprogrammpaket nur aus einer
-Datei (und nicht aus einer normalen Datei) importieren, gelangt der Testdienstprogrammcode nicht in die kompilierte Binärdatei des eigentlichen Programms.
net/http/httptest
Beispiele für solche Testdienstprogrammpakete finden Sie in der Standardbibliothek:
net/internal/socktest
Paket httptest bietet Dienstprogramme für HTTP-Tests.
os/exec/internal/fdtest
Das Socktest-Paket bietet Dienstprogramme zum Testen von Steckdosen.
p>
testing/quick
Das Paket fdtest bietet Testhilfen für die Arbeit mit Dateideskriptoren in allen Execs.
testing/fstest
Package Quick implementiert Hilfsfunktionen zur Unterstützung bei Black-Box-Tests.
Das obige ist der detaillierte Inhalt vonSo verwalten Sie den Initialisierungscode für Testabhängigkeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So verwenden Sie einen absoluten Wert in C++

Was bedeutet iomanip in der C-Sprache?

So berechnen Sie den absoluten Wert in C++
