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

Odpovedet emailem