


Strukturmethoden in Go-Testfällen verspotten
In Go können Methodenaufrufe einer Struktur verspottet werden, ohne Schnittstellen in den Quellcode einzuführen . So geht's:
Verspotten einer Beispielstruktur und -methode
Betrachten Sie die folgende Struktur und Methode:
type A struct {} func (a *A) perfom(string){ ... ... .. }
Verspotten in Testfällen
Um die Perform-Methode für Tests zu verspotten Fälle:
- Erstellen Sie eine Mock-Schnittstelle: Definieren Sie eine Schnittstelle, die die zu verspottende Methode darstellt.
type Performer interface { perform(string) }
- Erstellen Sie Schein- und echte Implementierungen: Implementieren Sie die Schnittstelle sowohl für eine Schein- als auch für eine echte Implementierung des struct.
type AMock struct {} func (a *AMock) perform(string) { // Mocked behavior } type A struct {} func (a *A) perform(string) { // Real implementation }
- Abhängigkeitsinjektion verwenden: Übergeben Sie die simulierte oder reale Implementierung als Argument an die zu testende Funktion.
func invoke(url string, p Performer) { out := p.perfom(url) ... ... }
- Injizieren Sie Mock in Tests:Injizieren Sie in Ihren Testfällen den Mock Implementierung in die Aufruffunktion.
func TestInvokeWithMock(t *testing.T) { var amok = &AMock{} invoke("url", amok) // Verify mock behavior (e.g., assert it was called with the correct argument) }
- Injizieren Sie eine echte Implementierung in den Produktionscode: Fügen Sie in Ihrem Produktionscode die echte Implementierung der Struktur in die Aufruffunktion ein .
func TestInvokeWithReal(t *testing.T) { var a = &A{} invoke("url", a) // No need for verification since it's the real implementation }
Andere Optionen
Bibliotheken wie [testify/mock](https://godoc.org/github.com/stretchr/testify/mock) bieten noch robustere Mocking-Funktionen, mit denen Sie das Mock-Verhalten steuern können Methodenaufrufe überprüfen.
Das obige ist der detaillierte Inhalt vonWie verspotte ich Strukturmethoden in Go-Testfällen ohne Schnittstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Golangissidealforperformance-kritische Anpassung und Konzernprogrammierung, whilepythonexcelsindatascience, RapidPrototyping, Andverseility) Forhoigh-Performanceneeds, Wockengolangduetoitseffizienz und -Konkosen-Feature.2) fürData-drivert

Golang erreicht eine effiziente Parallelität über Goroutine und Kanal: 1. Goroutine ist ein leichter Thread, der mit dem GO -Keyword begonnen wird. 2.Channel wird zur sicheren Kommunikation zwischen Goroutinen verwendet, um Rennbedingungen zu vermeiden. 3. Das Nutzungsbeispiel zeigt die grundlegende und fortgeschrittene Verwendung; 4. Häufige Fehler sind Deadlocks und Datenwettbewerb, die durch Gorun-Race erkannt werden können. 5. Leistungsoptimierung schlägt vor, die Verwendung von Kanal zu verringern, die Anzahl der Goroutinen vernünftigerweise festzulegen und Sync.pool zum Verwalten von Speicher zu verwenden.

Golang eignet sich besser für Systemprogramme und hohe Parallelitätsanwendungen, während Python besser für Datenwissenschaft und schnelle Entwicklung geeignet ist. 1) Golang wird von Google entwickelt, das statisch tippt, die Einfachheit und Effizienz betont und für hohe Parallelitätsszenarien geeignet ist. 2) Python wird von Guidovan Rossum erstellt, dynamisch typisiert, prägnant Syntax, breite Anwendung, geeignet für Anfänger und Datenverarbeitung.

Golang ist in Bezug auf Leistung und Skalierbarkeit besser als Python. 1) Golangs Kompilierungseigenschaften und effizientes Parallelitätsmodell machen es in hohen Parallelitätsszenarien gut ab. 2) Python wird als interpretierte Sprache langsam ausgeführt, kann aber die Leistung durch Tools wie Cython optimieren.

Go Language hat einzigartige Vorteile bei gleichzeitiger Programmierung, Leistung, Lernkurve usw.: 1. Die gleichzeitige Programmierung wird durch Goroutine und Kanal realisiert, was leicht und effizient ist. 2. Die Kompilierungsgeschwindigkeit ist schnell und die Betriebsleistung liegt nahe an der der C -Sprache. 3. Die Grammatik ist prägnant, die Lernkurve ist glatt und das Ökosystem ist reich.

Die Hauptunterschiede zwischen Golang und Python sind Parallelitätsmodelle, Typsysteme, Leistung und Ausführungsgeschwindigkeit. 1. Golang verwendet das CSP -Modell, das für hohe gleichzeitige Aufgaben geeignet ist. Python verlässt sich auf Multi-Threading und Gil, was für I/O-intensive Aufgaben geeignet ist. 2. Golang ist ein statischer Typ und Python ist ein dynamischer Typ. 3.. Golang kompilierte Sprachausführungsgeschwindigkeit ist schnell und Python interpretierte die Sprachentwicklung schnell.

Golang ist in der Regel langsamer als C, aber Golang hat mehr Vorteile für die gleichzeitige Programmier- und Entwicklungseffizienz: 1) Golangs Müllsammlung und Parallelitätsmodell macht es in hohen Parallelitätsszenarien gut ab. 2) C erhält eine höhere Leistung durch das manuelle Speichermanagement und die Hardwareoptimierung, weist jedoch eine höhere Komplexität der Entwicklung auf.

Golang wird häufig in Cloud -Computing und DevOps verwendet, und seine Vorteile liegen in Einfachheit, Effizienz und gleichzeitigen Programmierfunktionen. 1) Beim Cloud Computing behandelt Golang effizient gleichzeitige Anforderungen über Goroutine- und Kanalmechanismen. 2) In DevOps machen Golangs schnelle Zusammenstellung und plattformübergreifende Funktionen die erste Wahl für Automatisierungswerkzeuge.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Dreamweaver Mac
Visuelle Webentwicklungstools

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.