Czyli jak testować w Eclipsie? JUnit Czyli jak testować w Eclipsie? 1
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 2
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 3
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ści public void 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?
JUnit 3.X - Przykład (1)
JUnit 3.X - Przykład (2)
JUnit 3.X - Przykład (3)
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 @Ignore pozwala zignorować daną metodę testującą Jako parametr dla annotacji @Test możemy podać czas (w mikrosekundach) opóźnienia uruchomienia danej metody testowej
JUnit 4.X - Przykład (1)
JUnit 4.X - Przykład (2)
Ć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
Pytania?
Koniec Dziękuję za uwagę