Junior — Middle
Was ist die Hauptrolle und Anwendung von Mock-Objekten im Testprozess?
sobes.tech KI
Antwort von AI
Mock-Objekte werden im Test verwendet, um das Verhalten realer Systemkomponenten nachzuahmen, mit denen das zu testende Modul interagiert. Die Hauptfunktion von Mock ist es, den getesteten Code von externen Abhängigkeiten (z.B. Datenbanken, Netzwerksdiensten) zu isolieren, damit die Tests schnell, zuverlässig und reproduzierbar sind.
Der Einsatz von Mock-Objekten ermöglicht:
- Überprüfung der Interaktionen mit Abhängigkeiten (z.B. Methodenaufrufe, übergebene Parameter).
- Simulation verschiedener Szenarien für Abhängigkeiten (Erfolg, Fehler, Verzögerungen).
- Vereinfachung der Einrichtung der Testumgebung.
Beispiel in Go mit Interfaces und Mocks für das Testen einer Funktion, die einen externen Dienst aufruft:
package service
type ExternalAPI interface {
GetData(id string) (string, error)
}
func ProcessData(api ExternalAPI, id string) (string, error) {
data, err := api.GetData(id)
if err != nil {
return "", err
}
return "Processed: " + data, nil
}
// Im Test erstellen wir ein Mock:
type MockAPI struct {}
func (m *MockAPI) GetData(id string) (string, error) {
if id == "123" {
return "mocked data", nil
}
return "", fmt.Errorf("not found")
}
// Test
func TestProcessData(t *testing.T) {
mock := &MockAPI{}
result, err := ProcessData(mock, "123")
if err != nil || result != "Processed: mocked data" {
t.Errorf("Unerwartetes Ergebnis: %v, Fehler: %v", result, err)
}
}