Jestem nowy w Github. Jestem nowy w pisaniu przypadków testowych jednostek. Przyczyniłem się do projektu, ale właściciel poprosił mnie o dostarczenie testowych jednostek, które zawiodły przed naprawą i działały po naprawie. Jak mogę to zrobić? Mam napisać je wszystkie razem? Kiedyś będę miał jedną kopię kodu (tj. Z poprawką lub bez poprawki). Używam Pythona i importuję unittest. Jestem zdezorientowany. Przed poprawką otrzymuję wyjątek, więc powinienem użyć assertRaises() do tego. Dużo czytałem, ale nie mogę zacząć.testowanie jednostki python jak do
Odpowiedz
Załóżmy, że masz poprawkę dla następujących funkcji: złamany delta
łamany wersję:
def delta(a, b):
return a - b
wersji naprawiono:
def delta(a, b):
return abs(a - b)
Następnie dostarczyć następujące testcase. Zepsuje się z uszkodzoną wersją i będzie działać ze stałą wersją.
import unittest
from module_you_fixed import delta
class TestDelta(unittest.TestCase):
def test_delta(self):
self.assertEqual(delta(9, 7), 2)
self.assertEqual(delta(2, 5), 3)
if __name__ == '__main__':
unittest.main()
Założono, że projekt korzysta ze standardowego modułu unittest biblioteki. Powinieneś użyć struktury, której używa projekt.
Absoultely Perfect Example. Trzy okrzyki. Tylko jedno: myślałem o napisaniu dwóch takich plików jeden z assertsequal() dla naprawionego i jednego z assertRaises() dla wyjątku (uszkodzony). Ale myślę, że po zobaczeniu twojej odpowiedzi mogę po prostu przejść do jednego pliku i po prostu twierdzić, że Equal. Teraz złamany upadnie, a następnie naprawiony. Czy jest to akceptowalne, czy muszę napisać 2 pliki i przekazać oba testy w ustalonym (z assertsEqual), a także przekazać uszkodzony (używając assertRaises)? W każdym razie +1 za odpowiedź. – Dominix
@ Dominix, Just assertEqual one. – falsetru
Kiedy używam assertEqual() i pierwszy test kończy się niepowodzeniem, mam na myśli wywołanie self.assertEqual (delta (9, 7), 2), niż nie musi wykonywać następnego wiersza. W jaki sposób mogę go wykonać dla każdego przypadku testowego i wydrukować FAIL dla wszystkich, a nie tylko awarię dla jednego i wychodzący – Dominix
- 1. Testowanie rozwoju opartego na testowaniu, testowanie jednostki
- 2. Testowanie jednostki Błędy WCF
- 3. testowanie jednostki angularjs dyrektywa
- 4. Testowanie jednostki XSLT
- 5. Testowanie jednostki JSF
- 6. Testowanie jednostki testowej JavaScript Javascript
- 7. Testowanie jednostki Kod ASP.NET za
- 8. Jak rozszerzyć testowanie Ruby :: Jednostki na assert_false?
- 9. Testowanie jednostki ASP.NET Windows7/IIS7
- 10. Testowanie jednostki w wersji flex
- 11. Testowanie jednostki socket.io w Angular
- 12. Testowanie jednostki Interfejs użytkownika kakao
- 13. Testowanie jednostki javascript w visual studio 2008
- 14. Testowanie jednostki dla modelu sprzężenia zwrotnego
- 15. Testowanie jednostki w stylu kodu javascript
- 16. Testowanie jednostki HttpInterceptor od Angular 4
- 17. Testowanie jednostki Metody Spring AAround AOP
- 18. Testowanie jednostki usługowej i iniekcja zależności
- 19. Testowanie jednostki: Stwierdzenie, że plik/ścieżka istnieje
- 20. Testowanie jednostki Sterownik AngularJS z $ httpBackend
- 21. testowanie aplikacji python kliknięcie
- 22. testowanie jednostki spyOn obserwowalna usługa w angular2
- 23. Testowanie jednostki Pytanie setera prywatnego (C#)
- 24. Testowanie jednostki ASP.NET WebApi za pomocą Request.CreateResponse
- 25. Testowanie jednostki Javascript, który obejmuje DOM
- 26. jak wykpić odpowiedź hapi.js z sinonem na testowanie jednostki
- 27. TaskScheduler.FromCurrentSynchronizationContext - jak używać wątku dyspozytora WPF, gdy testowanie jednostki
- 28. testowanie interaktywnych programów python
- 29. Python - Testowanie abstrakcyjnej klasy bazowej
- 30. Odsłanianie wzorca modułu - testowanie jednostki za pomocą Jasmine
Nie ma potrzeby używania 'assertRaises': Test ma * nie powodzić * dla starego kodu, stąd prosty krok' assertEqual' (lub jedna z pozostałych kontroli) jest właściwą drogą. Musisz tylko użyć 'assertRaises', jeśli chcesz sprawdzić, czy funkcja ma poprawną obsługę błędów (np. Czy zgłasza poprawny wyjątek, gdy podano nieprawidłowe dane wejściowe). Ogólnie rzecz biorąc, zawsze * zachowujesz prawidłowe zachowanie *. –
Dziękuję Florian za umożliwienie mi zrozumienia poprawnego użycia assertRaises() – Dominix