HowTo:JUnit 3 testy v Eclipse
Z Java.betlista.net
Testovanie s JUnit 3 je o niečo málo zložitejšie na začiatok, vo veciach, ktoré je nutné urobiť, ako testovanie s JUnit4 a preto ak Vás nič neomedzuje (napr. nutnosť použiť javu 5) odporúčam zvoliť JUnit4 (príde mi to elegantnejsšie).
class FirstTest extends TestCase {
public void testMethod() {
System.out.println("running test...");
}
}
V prvom kroku je potrebné vydediť Váš test z triedy junit.framework.TestCase, následne do tela triedy doplníte metódy, ktoré budú testovať Vašu funkčnosť, omedzením je, že ich názov musí začínať na test (a naopak, metódy, ktoré nechcete spúšťať zas nesmú začínať na test), čo sa môže zdať nepodstatné a môžete si gratulovať ak na to nikdy nenarazíte...
Spustenie je podobne jednoduché ako s JUnit4:
Run > Run As > JUnit Test
Pri testovaní je možné testovať rôzne podmienky, volaním metód ako fail() a assertEquals(Object expected, Object actual), ktoré máte prístupné z predka, teda triedy TestCase
Akurát s Eclipse'om 3.2 a Javou 1.4 som mal problémy. Aj napriek tomu, že som mal projekt kompilovaný v Javou 1.4, tak mi to pri spúšťaní testu hlásilo výnimku:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/jdt/internal/junit/runner/RemoteTestRunner (Unsupported major.minor version 49.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:539) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123) at java.net.URLClassLoader.defineClass(URLClassLoader.java:251) at java.net.URLClassLoader.access$100(URLClassLoader.java:55) at java.net.URLClassLoader$1.run(URLClassLoader.java:194) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:187) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
Neviem povedať presný dôvod prečo (myslím, že to bude niečo ako zlá kombinácia Javy ktorou spúšťam Eclipse a Javy ktorou spúšťam test), hlbšie som sa tomu nevenoval.
