W tworzeniu oprogramowania testowanie jednostkowe to proces, który izoluje i testuje dedykowane sekcje aplikacji. Jednostki są formalnym terminem dla tych dedykowanych sekcji. W aplikacji Java jednostka jest metodą.
Istnieje wiele platform testów jednostkowych dostępnych dla programistów Java. Wśród najlepszych frameworków znajduje się JUnit 5.
Dlaczego testowanie jednostkowe jest ważne?
Jeśli kiedykolwiek pisałeś instrukcje debugowania do drukowania i sprawdzania wartości zmiennej, gratulacje; utworzyłeś test jednostkowy. Ta jednorazowa sekcja kodu była konieczna, ponieważ nie otrzymywałeś oczekiwanych danych wyjściowych.
Ale co, jeśli otrzymujesz pożądane dane wyjściowe, a kod nadal zawiera gdzieś błąd? Możesz wdrożyć aplikację, a ten błąd może później spowodować naruszenie bezpieczeństwa. W przypadku aplikacji przechowujących dane użytkowników stawka jest wysoka, gdy dochodzi do naruszenia bezpieczeństwa.
Testowanie jednostkowe dotyczy każdej sekcji aplikacji — niezależnie od tego, czy obecnie powoduje błąd, czy nie. Dlatego testowanie jednostkowe odgrywa istotną rolę w:
dobre zabezpieczenia oprogramowania.Co to jest JUnit 5?
JUnit 5 to coś więcej niż tylko kolejny framework do testów jednostkowych. Ma kilka podprojektów, a mianowicie JUnit Platform, JUnit Jupiter i JUnit Vintage. Każdy z tych trzech komponentów ma unikalne moduły, które współpracują ze sobą, aby usprawnić testowanie dla programistów Java.
Platforma JUnit 5 jest dostępna w najnowszych wersjach najlepszych platform programistycznych Java Integrated (IDE). IDE Java obsługujące JUnit 5 to:
- IntelliJ POMYSŁ
- Zaćmienie
- NetBeans
- Kod programu Visual Studio
Tworzenie testów jednostkowych za pomocą JUnit 5
Ten przykładowy program używa JUnit 5 do tworzenia kilku testów jednostkowych w prostej aplikacji kalkulatora.
Klasa kalkulatora
pakiet aplikacja;
publicznyklasaKalkulator{
publicznystatycznyintDodaj(int liczba1, int liczba2){
zwrócić liczba1 + liczba2;
}publicznystatycznyintodejmować(int liczba1, int liczba2){
zwrócić numer1 - numer2;
}publicznystatycznyintzwielokrotniać(int liczba1, int liczba2){
zwrócić liczba1 * liczba2;
}
publicznystatycznyintdzielić(int liczba1, int liczba2){
zwrócić numer1 / numer2;
}
}
The Klasa Java powyżej wykonuje cztery operacje statyczne: dodawanie, odejmowanie, mnożenie i dzielenie. Każda metoda przyjmuje dwa argumenty całkowite i zwraca jedną wartość całkowitą.
Klasa testowa JUnit 5
pakiet test;
importstatyczny org.junit. Zapewniać.*;
import aplikacja. Kalkulator;
importorganizacja.junit.Test;publicznyklasaKalkulatorTest{
@Test
publicznypróżniatestDodaj(){
AssertEquals(7, Kalkulator.Dodaj(3, 4));
}@Test
publicznypróżniatestOdejmij(){
AssertEquals(6, Kalkulator.odejmować(9, 3));
}@Test
publicznypróżniatestPomnóż(){
AssertEquals(10, Kalkulator.zwielokrotniać(5, 2));
}
@Test
publicznypróżniatestPodziel(){
AssertEquals(2, Kalkulator.dzielić(4, 2));
}
}
KalkulatorTest wprowadza dwa ważne pojęcia: @Test adnotacja i asercja jest równa () metoda. Adnotacja @Test wskazuje, że metoda bezpośrednio pod nim jest metodą testową. W powyższej klasie testowej istnieją cztery metody testowania, po jednej dla każdej operacji kalkulatora.
Wszystkie metody testowe używają metody attachEquals(). Ta metoda przyjmuje dwa obowiązkowe argumenty i opcjonalny trzeci argument. Pierwszym argumentem podanym w powyższej metodzie assertEquals() jest oczekiwany wynik, a drugim argumentem jest metoda (lub jednostka), którą chcesz ocenić.
Klasa CalculatorTest nie ma metody głównej, ale adnotacje JUnit @Test sprawiają, że każda z metod testowych jest wykonywalna. Wykonanie klasy CalculatorTest w eclipse daje następujący interfejs:
Jak widać, każdy test jest udany. Istnieją cztery testy i wszystkie przebiegły bez błędów i niepowodzeń.
Nauka testów jednostkowych może poszerzyć Twoje możliwości kariery
Jako programista, wiedza o tym, jak testować oprogramowanie, jest korzystną umiejętnością, którą należy posiadać. Z pewnością poprawi to przepływ pracy i, miejmy nadzieję, ułatwi korzystanie z kodu innym. Istnieje jednak gałąź tworzenia oprogramowania, która koncentruje się wyłącznie na testowaniu. Inżynierowie ci są znani jako testerzy oprogramowania.