On Thursday 18 of August 2005 10:03, Vit Novak wrote:
> Vzhledem k tomu, ze u JUnitu stejne neni definovano, v jakem poradi se
> testMetody pousti, prislo by mi jako cistsi a citelnejsi si udelat jen
> jednu testMetodu a v ni si volat svoje testy, ktere uz nebudou mit prototyp
> "public void testBlaBla()". Mnohem lip pak muzu zachazet i se stavem
> objektu, pokud ho potrebuju atp.
> Metody fail, assertTrue atp. muzete pouzivat vesele dal.
>
> Jedina nevyhoda, kterou ted vidim, je ta, ze pokud ve firme mate metriku na
> pocet testu, pak takto vytvarene testy se v ni neprojevi. :)
Sorry, ale toto je tezky nonsence. Nejde ani o metriku, ale o to, ze
likvidujete paralelismus pri vyvoji a, coz je dulezitejsi, z toho, ktere
testy prosly a ktere ne lze mnohem lepe vyvodit kde nastala chyba. Navic pri
rozumnych nazvech testu pak vite, co jste uz otestovali a co ne. Ja typicky
pred implementaci kazde featury napisu do testu patricne tridy metodu
public void testNovaFeatura() {
throw new UnsupportedOperationException("To be implemented");//TODO
}
(uz mam na to sablonu v IDEI ;-) )
A pokud se nechci spolehnout na to, ze JUnit funguje tak, ze zavola metody
tridy tak, jak jsou po sobe napsane ve zdrojaku, pouzivam nasledujici
konstrukci:
/**
* Initialize suit.
*/
public static Test suite() {
// ensure the test sequence
TestSuite retval = new TestSuite();
retval.addTest(new MyTest("testHeadDirNonexistent"));
retval.addTest(new MyTest("testGetDirNonexistent"));
retval.addTest(new MyTest("testAppendDirNonexistent"));
retval.addTest(new MyTest("testDeleteDirNonexistent"));
return retval;
}
public static void main(String args[]) {
TestRunner.run(suite());
}
public MyTest(String name) {
super(name);
}
A pokud potrebuju mit nejaky objekt v nejakem stavu, vzdy si ho znovu vytvarim
a z inicialniho stavu jej v kazdem testu nastavim do stavu patricneho. Jinak
nikdo nezaruci, co je v jakem stavu. A samozrejme v kazdem kroku nastaveni
pouzivam JUnitove asserty...
--
Oto 'tapik' Buchta, [EMAIL PROTECTED]
QA Engineer, Systinet Corp,
http://www.systinet.com