Samouczek PyUnit: Python Struktura testów jednostkowych (z przykładem)
Co to jest testowanie jednostkowe?
Testów jednostkowych in Python ma na celu identyfikację błędów na wczesnym etapie rozwoju aplikacji, gdy błędy są mniej powtarzające się i tańsze w naprawie.
Test jednostkowy to skryptowy test poziomu kodu zaprojektowany w Python aby zweryfikować małą „jednostkę” funkcjonalności. Testy jednostkowe to framework zorientowany obiektowo, oparty na urządzeniach testowych.
Python Techniki testowania jednostkowego
Python Testowanie jednostkowe polega głównie na testowaniu konkretnego modułu bez dostępu do jakiegokolwiek zależnego kodu. Programiści mogą używać technik takich jak kody pośredniczące i makiety, aby dzielić kod na „jednostki” i przeprowadzać testy na poziomie jednostkowym poszczególnych elementów.
- Rozwój oparty na testach TDD: Testowanie jednostkowe należy przeprowadzić wraz z Pythoni w tym celu programiści korzystają z metody Test-Driven Development. W metodzie TDD najpierw projektujesz Python Testy jednostkowe i dopiero wtedy kontynuujesz pisanie kodu, który zaimplementuje tę funkcję.
-
Stuby i makiety: Są to dwie główne techniki symulujące testowane fałszywe metody. A Kikut służy do wypełnienia zależności wymaganej do prawidłowego działania testu jednostkowego. A Drwić z drugiej strony jest to fałszywy obiekt, który uruchamia testy, w których umieszczamytwierdzenie.
Intencje obu metod są takie same, aby wyeliminować testowanie wszystkich zależności klasy lub funkcji.
Python Ramy testów jednostkowych
Aby ułatwić proces testowania jednostkowego i poprawić jakość projektu, zaleca się Python Ramy testów jednostkowych. Struktura testów jednostkowych obejmuje
-
Jednostka Py: PyUnit obsługuje urządzenia, przypadki testowe, zestawy testów i moduł uruchamiający testy do automatycznego testowania kodu. W PyUnit możesz organizować przypadki testowe w zestawy z tymi samymi urządzeniami
-
Nos: Wbudowane wtyczki Nose'a pomagają w przechwytywaniu wyników, pokrywaniu kodu, dokumentowaniu itp. Składnia Nose'a jest znacznie prostsza i zmniejsza bariery w pisaniu testów. Rozciąga się Python unittest, aby ułatwić testowanie.
- Dokument: Skrypt testujący Doctest jest umieszczany w dokumencie z małą funkcją na dole pliku. Doctest umożliwia przetestowanie kodu poprzez uruchomienie przykładów zawartych w dokumentacji i sprawdzenie, czy zwróciły one oczekiwane wyniki. Przypadek użycia doctest jest mniej szczegółowy i nie uwzględnia specjalnych przypadków. Są przydatne jako wyrazista dokumentacja głównego przypadku użycia modułu i jego komponentów.
Testowanie jednostkowe za pomocą PyUnit
Pyunit jest Python Port JUnit. W ramach Pyunit, w module unittest znajduje się pięć kluczowych klas.
- Klasa TestCase: Klasa TestCase zawiera procedury testowe i zapewnia haczyki do wykonywania każdej procedury i późniejszego czyszczenia
- Klasa TestSuite: Pełni funkcję kontenera kolekcji i może zawierać wiele obiektów testowych i wiele obiektów zestawów testowych
- Klasa TestLoadera: Ta klasa ładuje przypadki testowe i zestawy zdefiniowane lokalnie lub z pliku zewnętrznego. Emituje obiekty zestawu testowego, które zawierają te zestawy i przypadki
- Klasa TextTestRunner: Aby uruchomić testy, dostępna jest standardowa platforma do wykonywania testów
- Klasa TestResults: Oferuje standardowy pojemnik na wyniki testów
Projektowanie przypadku testowego dla Python Testowanie przy użyciu PyUnit
Test jednostkowy zapewnia klasę bazową, przypadek testowy, który można wykorzystać do tworzenia nowych przypadków testowych. Do projektowania przypadku testowego stosowane są trzy zestawy metod
test jednostkowy.Przypadek testowy
setUp() teardown() skipTest(aMesg:string) fail(aMesg:string) id():string shortDescription():string
W pierwszym zestawie znajdują się haczyki przed i po teście. Metoda setup() rozpoczyna się przed każdą procedurą testową, metoda stress() po procedurze.
Drugi zestaw metod kontroluje wykonanie testu. Obie metody przyjmują ciąg komunikatu jako dane wejściowe i obie anulują trwający test. Jednak metoda skiptest() przerywa bieżący test, podczas gdy metoda fall() kończy go całkowitym niepowodzeniem.
Ostatnia lub trzecia metoda pomaga w ustaleniu testu. Metoda id() zwraca ciąg składający się z nazwy obiektu testowego i procedury testowej. A metoda krótkaDescription() zwraca komentarz docstr na początku każdej procedury testowej.
Zalety użytkowania Python Testy jednostkowe
- Pomaga wykryć błędy na wczesnym etapie cyklu rozwojowego
- Pomaga pisać lepsze programy
- Łatwo synchronizuje się z innymi metodami i narzędziami testowymi
- Będzie o wiele mniej błędów
- Łatwiej jest modyfikować w przyszłości z bardzo mniejszymi konsekwencjami