0Pricing
Dart Academy · Lekcja

Mocki, fake'i i pokrycie kodu

Izolowanie jednostek i mierzenie zakresu testów

Mocki, fake'i i pokrycie kodu to bezpłatna lekcja Dart Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Dart Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Dart Academy zawiera 4 lekcji w sumie.

Izolowanie jednostki

Test jednostkowy powinien sprawdzać jeden element w izolacji. Prawdziwe bazy danych lub sieci sprawiają, że testy są wolne i niestabilne, dlatego je zastępujemy. 🔌

Obiekty zastępujące w testach

Test double zastępuje prawdziwą zależność. Mocki, fake'i i stuby to najczęściej używane rodzaje takich obiektów.

Czym jest fake

Fake ma działającą, ale uproszczoną implementację, na przykład lista w pamięci zastępująca prawdziwą bazę danych.

class FakeRepo implements Repo {
  final _items = <Item>[];
}

Czym jest mock

Mock rejestruje sposób, w jaki został wywołany, dzięki czemu można weryfikować interakcje, a nie tylko wartości końcowe.

Pakiet mockito

Pakiet mockito generuje za Państwa mocki. Należy oznaczyć żądany typ adnotacją i uruchomić build_runner, aby go utworzyć.

@GenerateMocks([Repo])
import 'repo_test.mocks.dart';

Tworzenie stubów za pomocą when

Należy użyć when, aby skonfigurować mock: gdy ta metoda zostanie wywołana, zwróć tę wartość. Dzięki temu zachowanie jest przewidywalne.

when(repo.find(1))
  .thenReturn(Item('a'));

Weryfikowanie wywołań

Należy użyć verify, aby sprawdzić, czy metoda została wywołana i ile razy, potwierdzając prawidłową komunikację kodu z zależnością.

verify(repo.save(any)).called(1);

Tworzenie stubów asynchronicznych

W przypadku metod zwracających Future należy skonfigurować je za pomocą thenAnswer, aby mock mógł zwrócić wynik asynchroniczny.

when(api.load())
  .thenAnswer((_) async => 'ok');

Mock a fake

Po fake należy sięgnąć, gdy potrzebne jest realistyczne zachowanie, a po mock, gdy ważne jest, które wywołania miały miejsce.

Znaczenie coverage

Coverage mierzy, które wiersze kodu są faktycznie wykonywane przez testy. Wysokie pokrycie sugeruje dokładność, ale nigdy nie gwarantuje poprawności.

Generowanie coverage

Należy uruchomić testy z włączonym zbieraniem danych coverage, a następnie przekształcić te dane w raport, który można odczytać lub przesłać do narzędzia.

dart test --coverage=coverage

Szybkie sprawdzenie

Który obiekt zastępujący rejestruje wywołania, aby można było je zweryfikować?

Podsumowanie

Odizolowali Państwo jednostki za pomocą fake'ów i mocków, utworzyli stuby przy użyciu when, zweryfikowali wywołania i zmierzyli coverage. Szybkie, skoncentrowane i wiarygodne testy. 🎯

Często zadawane pytania

Czy lekcja „Mocki, fake'i i pokrycie kodu” jest bezpłatna?

Tak — pełny tekst „Mocki, fake'i i pokrycie kodu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Dart Academy, przejdź na CoddyKit PRO. Kurs Dart Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Mocki, fake'i i pokrycie kodu”?

Izolowanie jednostek i mierzenie zakresu testów Ćwiczysz Dart Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Dart Academy?

Nie wymagamy żadnego doświadczenia. Dart Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Mocki, fake'i i pokrycie kodu”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Dart Academy?

Tak. Każda lekcja Dart Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Państwa pierwszy test i expect
  2. group, setUp i tearDown
  3. Testowanie kodu asynchronicznego i strumieni
  4. Mocki, fake'i i pokrycie kodu
← Powrót do Dart Academy