Advanced junit and mockito

Embed Size (px)

Citation preview

Dependency Injection with Google Guice

Advanced JunitMathieu Carbou, 13/10/2011

github.com/Ovea/conf-junit

montreal-jug.org

junit.org

- presentation: expert en java & design, Depuis 16 ans (jdk 1 sous windows)specialiste en dev web (5 ans), Infra mavenArchi backend (web service, clustering, event driven, ajax & reverse-ajax)

- presentation sera sur mon blog

Junit basics

Junit advanced

Experimental features

Mockito

Schedule

@Test

Junit basics

Junit basics @Test

@Before, @After

@BeforeClass, @AfterClass

@BeforeClass

For each @Test Instanciate test class

@Before

Invoke the test

@After

@AfterClass

Junit lifecycle

@Test

@Before, @After

@BeforeClass, @AfterClass

Suites

Junit basics

@Test

@Before, @After

@BeforeClass, @AfterClass

Suites

Assertions

Junit basics

Hamcrest

Junit advancedhttp://code.google.com/p/hamcrest

Hamcrest

@ClassRule & @Rule

Junit advanced

Junit advancedpublic interface TestRule {Statement apply(Statement base, Description description);}

@Rule Statement

@ClassRule Statement

Hamcrest

@ClassRule & @Rule

@RunWith

Junit advanced

Junit runnersRunnerParentRunner

BlockJUnit4ClassRunnerSuite

Junit4

RunnerScheduler

Schedulingpublic interface RunnerScheduler {void schedule(Runnable childStatement);void finished();}

childStatement

Enclosed runner

Experimentals

Enclosed runner

@Category

Experimentals

Enclosed runner

@Category

@Theory

Experimentals

http://code.google.com/p/mockito/wiki/FeaturesAndMotivations

http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html

Mockitoexpect-run-verify

stubbing-run-(verify)

VS

EasyMockJMockMockito

Advanced JunitQUESTIONS ?

- presentation: expert en java & design, Depuis 16 ans (jdk 1 sous windows)specialiste en dev web (5 ans), Infra mavenArchi backend (web service, clustering, event driven, ajax & reverse-ajax)

- presentation sera sur mon blog

Site: http://lab.ovea.com/Blog: http://blog.mycila.comMail: [email protected]