Mocks, Fakes und Testabdeckung
Isolieren Sie Einheiten und messen Sie, was Sie testen
Mocks, Fakes und Testabdeckung ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Die Einheit isolieren
Ein Unit-Test sollte einen einzelnen Bestandteil isoliert prüfen. Echte Datenbanken oder Netzwerke machen Tests langsam und fehleranfällig, daher ersetzen wir sie. 🔌
Test Doubles
Ein Test Double tritt an die Stelle einer echten Abhängigkeit. Mocks, Fakes und Stubs sind die gängigen Varianten, die Sie einsetzen können.
Was ein Fake ist
Ein Fake hat eine funktionierende, aber vereinfachte Implementierung, etwa eine Liste im Speicher, die eine echte Datenbank ersetzt.
class FakeRepo implements Repo {
final _items = <Item>[];
}Was ein Mock ist
Ein Mock zeichnet auf, wie er aufgerufen wurde, sodass Sie Interaktionen und nicht nur die endgültigen Werte überprüfen können.
Das mockito-Paket
Das mockito-Paket erzeugt Mocks für Sie. Annotieren Sie den gewünschten Typ und führen Sie build_runner aus, um den Mock zu erstellen.
@GenerateMocks([Repo])
import 'repo_test.mocks.dart';Stubbing mit when
Verwenden Sie when, um einen Mock zu programmieren: Wenn diese Methode aufgerufen wird, geben Sie diesen Wert zurück. So bleibt das Verhalten vorhersehbar.
when(repo.find(1))
.thenReturn(Item('a'));Aufrufe überprüfen
Verwenden Sie verify, um zu prüfen, ob eine Methode aufgerufen wurde und wie oft. So stellen Sie sicher, dass Ihr Code korrekt mit seiner Abhängigkeit kommuniziert hat.
verify(repo.save(any)).called(1);Asynchrones Stubbing
Programmieren Sie Methoden, die ein Future zurückgeben, mit thenAnswer, damit der Mock ein asynchrones Ergebnis zurückgeben kann.
when(api.load())
.thenAnswer((_) async => 'ok');Mock oder Fake
Verwenden Sie einen Fake, wenn Sie realistisches Verhalten benötigen, und einen Mock, wenn Ihnen wichtig ist, welche Aufrufe erfolgt sind.
Was Coverage bedeutet
Coverage misst, welche Zeilen Ihre Tests tatsächlich ausführen. Eine hohe Abdeckung deutet auf gründliche Tests hin, garantiert aber niemals die Korrektheit.
Coverage erzeugen
Führen Sie Tests mit aktivierter coverage-Erfassung aus und wandeln Sie die Daten anschließend in einen Bericht um, den Sie lesen oder in ein Tool hochladen können.
dart test --coverage=coverageSchnellcheck
Welches Test Double zeichnet Aufrufe auf, damit Sie sie überprüfen können?
Zusammenfassung
Sie haben Einheiten mit Fakes und Mocks isoliert, mit when Stubs erstellt, Aufrufe überprüft und Coverage gemessen. Schnelle, fokussierte, zuverlässige Tests. 🎯
Lerne Dart mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Mocks, Fakes und Testabdeckung“ kostenlos?
Ja — der vollständige Text von „Mocks, Fakes und Testabdeckung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Mocks, Fakes und Testabdeckung“?
Isolieren Sie Einheiten und messen Sie, was Sie testen Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Dart Academy zu starten?
Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Mocks, Fakes und Testabdeckung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?
Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Ihr erster test- und expect-Test
- group, setUp und tearDown
- Asynchronen Code und Streams testen
- Mocks, Fakes und Testabdeckung