200 likes | 414 Views
JUnit. Czyli jak testować w Eclipsie?. Testowanie jednostkowe. Pozwala sprawdzić, czy pojedyncza jednostka kodu zachowuje się poprawnie Porównywanie oczekiwanego wyniku z wynikiem otrzymanym z kodu Pozwala sprawdzić kod po wprowadzeniu zmian Podstawa dla Test Driven Development. JUnit.
E N D
JUnit Czyli jak testować w Eclipsie?
Testowanie jednostkowe • Pozwala sprawdzić, czy pojedyncza jednostka kodu zachowuje się poprawnie • Porównywanie oczekiwanego wyniku z wynikiem otrzymanym z kodu • Pozwala sprawdzić kod po wprowadzeniu zmian • Podstawa dla Test Driven Development
JUnit • Framework do testowania jednostkowego w Javie stworzony przez Ericha Gamme and Kenta Becka • Pomysł przeniesiony na inne języki programowania: C# (Nunit), Python (PyUnit), C++ (CPPUnit) • Nowości w JUnit 4.X • Więcej szczegółów na http://www.junit.org
JUnit 3.X • Klasa testowa musi rozszerzać klasę TestCase • Nazwa metody testującej musi się zaczynać od „test”, musi być publiczna i nie może zwracać żadnej wartościpublicvoid testIsValid() • Specjalne metody setUp() oraz tearDown() wykonywane przed i po każdej metodzie testującej
Tworzenie testów(1) JUnit Test Case
Tworzenie testów(2) wersja JUnita gdzie umieścić testy? jaki pakiet? Jaka nazwa klasy testującej? co wygenerować? jaką klasę testujemy? dodanie biblioteki JUNit do projektu
Tworzenie testów(3) które metody chcemy testować? metody testujące jako final? czy wygenerować zadania TODO?
Uruchamianie testów • Wsparcie dla 3.X i 4.X • Uruchamianie testów przez opcję z menu kontekstowego • Widok JUnit
Raport z wykonania testów ponowne uruchomienie testów raport Szczegóły dotyczące testu
JUnit 4.X (1) • Wykorzystuje annotacje • Nie trzeba rozszerzać żadej klasy • Nie ma ograniczeń na nazwę metody testującej • Dowolna metoda może być uruchamiana przed lub po metodzie testującej • Możliwośc wyznaczenia metod uruchamoanych przed lub po wszystkich metodach testujących
JUnit 4.X (2) • W naszej klasie testującej oznaczamy: • Metodę testującą przez @Test • Metodę „set up” przez @Before • Metodę „tear down” przez @After • Metodę uruchamianą przed wszystkimi metodami testujęcymi przez @BeforeClass • Metodę uruchamianą po wszystkich metodach testujęcych przez @AfterClass
JUnit 4.X (3) • Dodatkowe możliwości: • Annotacja @Test może być sparametryzowana przez nazwę wyjątku jakiego spodziewamy się z testowanej metody • Annotacja @Ignorepozwala zignorować daną metodę testującą • Jako parametr dla annotacji @Testmożemy podać czas (w mikrosekundach) opóźnienia uruchomienia danej metody testowej
Ćwiczenia • Do trzeba zrobić? • Z CVSa ściągnąc projekt Computing4Students • W dołączonej bibliotece posiane jest 6 błędów • Napisac testy, które wykryją posiane błędy
Koniec Dziękuję za uwagę