# JUnit - Einarbeitung in 4 Wochen?



## membersound (1. Dez 2011)

Hi,

kann mir hier jemand Tipps geben um JUnit zu lernen?
Ich soll Anfang nächsten Jahres eine Web-Software intensiv mit JUnit testen. Frontend natürlich, aber auch bis hinunter zur Databse. 
Auch ein firmeninternes Testframework wird dazu existieren.

Ich hab allerdings bisher nie was mit Testing zu tun gehabt. Wie fange ich an, um nach den nächsten 4 Wochen möglichst flüssig mit JUnit arbeiten zu können?

Danke


----------



## maki (1. Dez 2011)

Am besten in dem du Tests schreibst.
Versuche nicht bestehenden Code der schwer testbar ist zu testen, fang einfach an.
Dazu solltest du die Doku, Bücher, Tutorials und Blogs lesen.


----------



## Andgalf (1. Dez 2011)

So pauschal kann man das schlecht beantworten. Web-Frontent mit J-Unit ist so ne sache, da brauchst Du schon selenium bzw. WebDriver ... dazu gibt es gute Tutorials.



> Frontend natürlich, aber auch bis hinunter zur Databse.



Dann handelt es sich nicht mehr um Unit-Tests sondern imho um Integrationstests.

Auf jeden Fall solltest Du dich mit Faking und Mocking auseinander setzen.

allgemeine Buchempfehlungen zu testing:

Test-Driven-Development
Agile Testing


----------



## fastjack (1. Dez 2011)

> Auch ein firmeninternes Testframework wird dazu existieren.



Du mußt erstmal wissen, was das für ein Framework ist und wie es funktioniert. Ansonsten kannst Du die Basics lernen, also JUnit-Tests, Mocks (jmock, easmock, easyglos, etc.), Integrationstest (kannst Du auch mit JUnit machen), Akzeptanztests (exactor, Fitnesse etc.), GUI-Tests (Selenium, was auch stark auf JUnit aufsetzt, HtmlUnit etc.)

Schau einfach nach Tutorials im Internet zu den einzelnen Themen, da gibt es eine Menge.

wenn die Anwendung bereits fertig ist, kannst Du test-driven vergessen  Außer wenn neue Features dazu kommen.


----------



## achillesat (1. Dez 2011)

JUnit


----------



## membersound (10. Dez 2011)

Danke euch, das ist schonmal guter Stoff.

Ich habe auch eine Frage:
Ich schreibe gerade einen Testcase, der auf eine Index Exception testet. Wenn ich den Testcase aber mit "extends TestCase" schreibe, dann schlägt dieser plötzlich fehl! :noe:


```
public class ExceptionsTest { // extends TestCase

	//test that passes when expected exception is thrown
    @Test(expected=IndexOutOfBoundsException.class)
    public void testIndexOutOfBoundsException() {
    	
        MyModel emptyList = new MyModel();
        Object o = emptyList.getMyList().get(0);
    }
}
```

So wie gepostet ist er OK, extended mit "TestCase" schlägt er fehl :shock:
Ich will ihn aber extenden, weil ich ihn sonst ja nicht zu einer Testsuite adden kann...

Danke


----------



## maki (10. Dez 2011)

Doku lesen!

Entweder JUnit 4 nutzen oder JUnit 3, aber nicht beides gleichzeitig!


----------



## membersound (10. Dez 2011)

Ok, ich wusste nicht, dass Testsuiten ab J4 nun auch über Annotations gebildet werden...
Danke


----------



## Landei (10. Dez 2011)

JUnit4 ist inkompatibel zu früheren Versionen (es gibt aber Adapter, um ältere Tools mit neuem Testcode zu füttern) und dank Annotationen wesentlich bequemer.


----------

