Uvazoval jsem nad timto tematem, a take nad tim, proc jsem tento problem
nikdy nemusel resit. Je to asi zpusobeno tim, ze hojne vyuzivam
refaktorizaci. Kdyz uz je nejaka privatni metoda tak slozita ze si
vyzada vlastni testovani (ze nestaci pouhe testovani verejnych metod),
pak ji vetsinou prisoudim vlastni tridu.
Asi to neni vsespasne reseni, ale zatim, mne to od vsech testu
privatnich metod uchranilo.
Jinak reflection se mi nejevi az tak slozite.
Lukas Benda
Zdar,
mam takovou spise filozofickou otazku. Zvazuju, ze bych chtel
otestovat privatni metodu jedne tridy. Zvazuju ze bych to udelal s
jUnit 4 s tim, ze ten unit test pripojim primo do dane tridy. Nelibi
se mi ale to, ze
1, samotna trida bude v runtime zavisla na tridach jUnitu, coz je
podle me, chyba navrhu.
2, testovaci metoda musi byt public, coz znamena ze exportuju tuto
metodu nesmyslne a zatemnuju tim API
Alternativy jsou:
1. pouzit Reflection a testovat privatni metodu pres reflection ->
zda se mi moc slozite
2. pouzit Groovy pro unit test -> asi nejschudnejsi, ale neni to
pure Java, musim do Mavenu pridavat goal na compilaci Groovy
trid, potize s Eclipse, ...
3. pouzit TestNG, ale i tam je nakonec zbytecna zavislost tridy na
testovacim frameworku. Jestli muze byt testovaci metoda v TestNG
privatni, to nevim.
Mate k tomu nekdo nejakou poznamku? Napad? Jak to delaji jinde?
Tom