Pyton

Samouczek Pythona Unittest

Samouczek Pythona Unittest

Testowanie jednostkowe to metoda testowania stosowana w inżynierii oprogramowania dla poszczególnych jednostek dowolnego kodu. Użytkownicy mogą przeprowadzać indywidualne testy, aby określić status źródła i stopień przydatności kodu. W ten sposób użytkownicy mogą testować jakość kodu.

Testowanie odbywa się po zakończeniu procesu rozwoju. Użytkownicy mogą również rozpocząć testowanie, gdy skrypt testowy ma zostać zweryfikowany na podstawie kryteriów testowania. Od programistów oczekuje się ręcznego pisania typów kodu źródłowego. Ogólnie rzecz biorąc, ręczne pisanie kodów testów jednostkowych jest gorączkowym zadaniem, ale w Pythonie odbywa się to za pomocą wbudowanej funkcji o nazwie unittest.

Test jednostkowy

Testowanie w Pythonie odbywa się za pomocą unittest framework. Testy jednostkowe sprawiają, że kod jest bezpieczny i łatwy w użyciu również w przyszłości. Użytkownicy zwykle nie mogą przewidzieć tych przypadków, ale mogą łatwo je rozwiązać address. Unittest może być całym modułem, konkretną funkcją i całym interfejsem (klasa/moduł).

Jak pisać testy jednostkowe dla swojego kodu?

Aby napisać testy jednostkowe dla swojego kodu, zawsze zaczynaj od najmniejszej jednostki, którą można przetestować z całego kodu, a następnie przejdź do innych jednostek. W ten sposób sprawdzisz, jak najmniejsza wybrana jednostka oddziałuje, aby zbudować cały test jednostkowy.

Struktura testów jednostkowych Pythona została utworzona z uwzględnieniem Junit Jun javy. Ma takie same funkcje, jak testy jednostkowe wykonywane w innych różnych językach. Struktura testów jednostkowych w Pythonie pomaga w testowaniu automatyzacji, konfigurowaniu udostępniania, agregacji wielu testów w jeden duży zestaw i niezależnych testach

Przykłady:

Teraz w tym przykładzie sprawdzamy kod, aby znaleźć sumę w kodzie Pythona za pomocą funkcji sum(). Odpowiedź na to podsumowanie musi być 12, co jest poprawne.

>>> asercja sum([2, 4, 6]) == 12, "Powinno być równe 12"

Z drugiej strony, jeśli spróbujemy napisać niewłaściwą wartość wyjściową, której suma jest niepoprawna, wyniki się nie powiedzą. Zwróci AssertionError. Podane przez nas dane wyjściowe są nieprawidłowe, czyli wynoszą 12, a rzeczywiste dane wyjściowe muszą wynosić 6, dlatego zwrócił ten błąd.

>>> asercja sum([2, 2, 2]) == 12, "Powinno być równe 12"

Teraz zamiast testować na REPL, wstawimy nowy plik Pythona i nazwiemy go suma_testowa.py

>> def suma_testowych():
asercja sumy([2, 4, 6]) == 12, "Powinna być równa 12"
if __name__ == "__main__":
testValue_sum()
print("Wszystko zostało przekazane poprawnie")

Po napisaniu przypadku testowego możesz uzyskać dostęp do katalogu, w którym znajduje się test_sum.plik py, a następnie wpisz:

$ python test_sum.py

Wynik:

Wartość wyjściowa, gdy jest zbliżona do wyświetlanej, zatwierdzi poprawną wartość.

Stwórzmy kolejny plik dla .py przetestować sumę. Przykład wyświetlany w kodzie i może być użyty jako próbka poprzez skopiowanie:

def testValue_sum():
asercja sumy([2, 4, 6]) == 12, "Powinna być równa 12"
def testValue_sum_tuple():
asercja sumy((1, 1, 1)) == 6, "Powinna być równa 6"
if __name__ == "__main__":
testValue_sum()
testValue_sum_tuple()
print("Wszystko zostało przekazane poprawnie")

Tym razem ponownie nazwiemy plik test_sum.py 

Pierwszy blok kodu jest poprawny, podczas gdy drugi blok kodu jest błędny i zawiera błąd, więc nasze wyjście zwróci to samo.

Teraz wrócimy do katalogu projektu, w którym zapisaliśmy .plik py, a następnie przetestuj plik za pomocą następującego polecenia:

$ python test_sum.py

Wynik:

Tym razem, ponieważ kod wejściowy zawierał błąd, oczekuje się, że w odpowiedzi zwróci błąd asercji.

Przykład użycia testu jednostkowego:

Wymagania testu jednostkowego są takie, że użytkownicy mogą umieszczać swoje testy w klasach jako różne metody, użytkownicy mogą używać serii metod asercji, a klasa TestCase może być używana zamiast instrukcji Assert.

Użytkownicy mogą przekonwertować przykład omówiony w poprzedniej połowie na testowy przypadek testowy.

Najpierw zaimportuj bibliotekę unitest. Następnie musisz stworzyć TestSum z różnych klas.

Utwórz nowy plik dla kodu omówionego poniżej:

importuj test jednostkowy
klasa Suma testów(test jednosteku.Przypadek testowy):
def testValue_sum(self):
samego siebie.attachEqual(sum([2, 4, 6]), 12, "powinna być równa 12")
def testValue_sum_tuple(self):
samego siebie.attachEqual(sum((1, 1, 1)), 6, "powinna być równa 6")
if __name__ == '__main__':
test jednostkowy.Główny()

Po wykonaniu tego polecenia na wyjściu pojawi się kropka. Oznacza to sukces, a F oznacza porażkę.

Mamy więc sukces, a kolejny to porażka.

Wynik:

Pisanie pierwszego testu:

Utwórz nowy folder projektu, a następnie utwórz nowy folder, nazwiemy go sum_file. Wewnątrz niego utwórz plik i nazwij go __init__.py.  Stwórz folder projektu taki jak ten:

projekt/

└── sum_plik/
└── __początek__.py

Następnie musisz otworzyć my_sum/__init__.py i utwórz nową funkcję sum(). Będzie można iterować (lista, krotka lub zestaw), aby dodać wiele wartości:

def suma(arg):
obliczona wartość_całkowita = 0
dla val w arg:
total_ValueCalculated += wartość
return total_ValueCalculated

Następnie musisz utworzyć test plik. Zacznij od napisania testów i utwórz plik testowy o nazwie plik testowy.py. Aby zaimportować aplikację, która musi zostać przetestowana, umieść plik plik testowy.py nad folderem pakietu. Oto ogólny wygląd Twojego katalogu:

projekt/

├── sum_plik/
│ └── __init__.py
|
└── plik testowy.py

Jak wspomniano wcześniej, aby przetestować kod, możesz użyć następującego polecenia w oknie terminala/wierszu poleceń:

$ python -m test jednostkowy

Wniosek

Artykuł omawia proces testowania jednostkowego w Pythonie. Testowanie jest jedną z przydatnych funkcji inżynierii oprogramowania, która jest w stanie podzielić kody na mniejsze części, a następnie wypróbować je jeden po drugim. Użytkownicy mogą również skompilować całe próbki testowe / kody jednostek w jedną dużą kolekcję. Unittest to jedna z funkcji używanych w Pythonie, która ułatwia korzystanie z testowania.

Gry 5 najlepszych kart do przechwytywania gier
5 najlepszych kart do przechwytywania gier
Wszyscy widzieliśmy i uwielbialiśmy strumieniowe rozgrywki na YouTube on. PewDiePie, Jakesepticye i Markiplier to tylko niektórzy z najlepszych graczy...
Gry Jak stworzyć grę na Linuksie
Jak stworzyć grę na Linuksie
Dziesięć lat temu niewielu użytkowników Linuksa przewidywało, że ich ulubiony system operacyjny pewnego dnia stanie się popularną platformą do gier dl...
Gry Open Source Ports of Commercial Game Engines
Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...