Tomasz Kokoszka
l
Erich Gamma, Kent Beck
l
na
SourceForge
od 24 listopad 2000
l
Framework
l
Testy jednostkowe
l
Xdoclet, Struts, JOnAS
public static void
main(...) throws Exception {
//wołanie metod, sprawdzenie wyników
//w razie bł
ędu rzuca wyjątek
System.out.println("Test OK");
}
l
Klasa najmniejszą jednostką testowania
l
Przerwanie przy pierwszym błędzie
l
Kod testowy obecny w kodzie wynikowym
l
Brak mechanizmu do uruchamiania
l
Brak mechanizmu dla raportów
l
Metoda najmniejszą jednostką testowania
l
Przypadki testowe
l
Oddzielenie testów od kodu
l
Wiele mechanizmów uruchamiania
l
Budowanie raportów
l
Integracja z różnymi IDE
Czyli z czym to się je...
public class
DateStr
{
public
String dat;
public
DateStr(String dat) {
this
.dat = dat;}
public
String[]
split()
{
return
dat.split(
"\\."
);
}
public
Date
toDate()
{
try
{
return
(
new
SimpleDateFormat(
"dd.MM.yyyy"
)).parse(dat);
}
catch
(ParseException e) {}
return null
;
}
}
public class
DateStr
Test
extends
junit.framework.TestCase
{
private
DateStr t1 =
new
DateStr(
"06.12.2003"
);
public void
test
Split()
{
String[] a1 = t1.split();
assertTrue(
"Rozmiar>0"
, a1.length > 0);
assertEquals(
"dzie
ń = 06"
,
"06"
, a1[0]);
}
public void
test
ToDate()
{
Date d1 = t1.toDate();
assertNotNull(
"Dobra data"
, d1);
assertNull(
"Zła data"
,
(
new
DateStr(
"06-12-2003"
)).toDate());
}
}
l
Konsola SWING
l
Konsola tekstowa
l
Skrypty budujące ANT
–
testowanie wsadowe
–
możliwość budowania raportu
l
Integracja ze środowiskiem IDE (np. Eclipse)
java junit.swingui.TestRunner test1.DateStrTest
l
Wyniki testów w XML
l
Xalan: XML
à HTML
l
Klasa TestCase
l
Asercje
l
Nazwa klasy:
<klasa>
Test
l
Nazwa metody:
test
<metoda>
l
junit.framework.TestCase
–
setUp()
–
tearDown()
l
junit.framework.TestSuit
–
zbiór testów jednostkowych
l
assertTrue(b
1
),
assertFalse(b
1
)
l
assertNull(o
1
),
assertNotNull(o
1
)
l
assertEquals(o
1
, o
2
)
l
assertSame(o
1
, o
2
),
assertNotSame(o
1
, o
2
)
l
fail()
l
AssertionFailedError
Ach ten Eclipse...
l
JUnit = testy funkcjonalności
l
JUnitPerf
–
na bazie JUnit (korzysta z klas testowych)
–
symuluje wielokrotne wywołanie procedur testowych
–
prędkość działania i zużycie zasobów
–
przydatny tylko w początkowej fazie projektu
l
CppUnit
l
NUnit
l
utPLSQL – PL/SQL
l
HttpUnit – drzewo obiektów strony
l
DUnit – Delphi
l
J2EEUnit – obecnie jakarta-Cactus
l
www.junit.org
l
otn.oracle.com/oramag/oracle/03-may/o33junit.html
–
JUnit krok po kroku
l
www.3plus4software.de/eclipse/junit_en.html
–
JUnit w Eclipse krok po kroku
l
www.e-urzad.pl/testy_testow.html
–
„Testy testów”
http://rainbow.mimuw.edu.pl/~tk189405/JUnit