Heim >Backend-Entwicklung >Golang >Wie kann ich Strukturmethodenaufrufe in Go-Testfällen simulieren?

Wie kann ich Strukturmethodenaufrufe in Go-Testfällen simulieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-05 07:09:17898Durchsuche

How Can I Mock Struct Method Calls in Go Test Cases?

Verspotten von Methodenaufrufen von Strukturen in Go-Testfällen

In Go gibt es keine native Unterstützung für verspottende Methodenaufrufe von Strukturen. Es können jedoch mehrere Techniken eingesetzt werden, um eine ähnliche Funktionalität zu erreichen.

Ein Ansatz besteht darin, eine Schnittstelle zu definieren, die die relevanten Methoden der Struktur darstellt, und eine Scheinimplementierung dieser Schnittstelle zu erstellen. Diese Scheinimplementierung kann dann anstelle der eigentlichen Struktur in den Testfall eingefügt werden.

Betrachten Sie das folgende Codebeispiel:

type A struct {}

func (a *A) perform(url string){
    // ...
}

Zum Testen der invoke()-Funktion, die diese Funktion verwendet ()-Methode kann eine Scheinimplementierung der A-Struktur erstellt werden:

type AMock struct {
    PerformFunc func(url string)
}

func (m *AMock) perform(url string) {
    if m.PerformFunc != nil {
        m.PerformFunc(url)
    }
}

Im Testfall kann der Schein in die invoke() eingefügt werden Funktion:

func TestInvoke(t *testing.T) {
    mock := &AMock{}
    mock.PerformFunc = func(url string) {
        // Test logic for mock behavior
    }
    invoke(mock, "example.com")
}

Durch Festlegen des PerformFunc-Felds auf dem Mock kann das Verhalten der Mock-Methode gesteuert und im Test bestätigt werden.

Ein anderer Ansatz zum Mocking beinhaltet die Verwendung einer Abhängigkeitsinjektion Framework, das Spott unterstützt. Dies ermöglicht flexiblere und vielseitigere Mocking-Funktionen, erfordert jedoch zusätzliche Konfiguration und Einrichtung.

Letztendlich hängt die am besten geeignete Methode zum Mocking von den spezifischen Anforderungen und Einschränkungen des Testfalls und der zu entwickelnden Anwendung ab.

Das obige ist der detaillierte Inhalt vonWie kann ich Strukturmethodenaufrufe in Go-Testfällen simulieren?. 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