Presentation is loading. Please wait.

Presentation is loading. Please wait.

Thomas Ferris Nicolaisen - Objectware. Sprint TestContext Framework Thomas Ferris Nicolaisen Objectware JavAcademy desember 2007.

Similar presentations


Presentation on theme: "Thomas Ferris Nicolaisen - Objectware. Sprint TestContext Framework Thomas Ferris Nicolaisen Objectware JavAcademy desember 2007."— Presentation transcript:

1 Thomas Ferris Nicolaisen - Objectware

2 Sprint TestContext Framework Thomas Ferris Nicolaisen Objectware JavAcademy desember 2007

3 Thomas Ferris Nicolaisen - Objectware

4 ”A completely revised integration test framework, with first-class support for JUnit 4 and TestNG ”

5 Thomas Ferris Nicolaisen - Objectware Spring Spring Test Spring TestContext Framework

6 Thomas Ferris Nicolaisen - Objectware mv spring-mock spring-test

7 Thomas Ferris Nicolaisen - Objectware

8

9

10 So how do we do it? pom.xml: (junit 4.4)spring-corespring-beans spring-test spring-tx 265 + 451 + 216 + 174 = 1,1 MB

11 Thomas Ferris Nicolaisen - Objectware How? @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "testSpring.xml" }) public class TestJUnit4WithSpringTestContextFramework {...

12 Thomas Ferris Nicolaisen - Objectware Repeat @Test @Repeat(20) public void repeatManyTimes() throws Exception { counter++; int numberOfTimesToRepeat = this. getClass(). getMethod("repeatManyTimes"). getAnnotation(Repeat.class).value(); log.trace("Running for the "+counter+"th time"); if (counter > numberOfTimesToRepeat) { fail( "Should not repeat more than 100 times. counter is "+counter); }

13 Thomas Ferris Nicolaisen - Objectware 2007-12-06 00:17:17,737 DEBUG [no.objectware.jafs.TestJUnit4WithSpringTestContextFramework] - 2007-12-06 00:17:18,237 TRACE [no.objectware.jafs.TestJUnit4WithSpringTestContextFramework] - 2007-12-06 00:17:18,253 TRACE [no.objectware.jafs.TestJUnit4WithSpringTestContextFramework] - 2007-12-06 00:17:18,268 TRACE [no.objectware.jafs.TestJUnit4WithSpringTestContextFramework] - 2007-12-06 00:17:18,284 TRACE [no.objectware.jafs.TestJUnit4WithSpringTestContextFramework] - 2007-12-06 00:17:18,300 TRACE [no.objectware.jafs.TestJUnit4WithSpringTestContextFramework] - 2007-12-06 00:17:18,331 TRACE [no.objectware.jafs.TestJUnit4WithSpringTestContextFramework] - 2007-12-06 00:17:18,362 TRACE [no.objectware.jafs.TestJUnit4WithSpringTestContextFramework] -

14 Thomas Ferris Nicolaisen - Objectware Timeout /** * This test will fail if it takes more than 50 ms to execute. */ @Test @Timed(millis=50) public void doSomethingBeforeTimeout() throws Exception{ int tryChangingMeTo50 = 20; Thread.sleep(tryChangingMeTo50); }

15 Thomas Ferris Nicolaisen - Objectware Caching av contexts @Test @DirtiesContext public void doSomethingThatDirtiesTheSpringContext() { // can't really come up with anything that screws the context here.. }

16 Thomas Ferris Nicolaisen - Objectware Springs exception testing @Test @ExpectedException(RuntimeException.class) public void doSomethingThatThrowsAnException() { throw new RuntimeException(); }

17 Thomas Ferris Nicolaisen - Objectware JUnit4 exception testing /** * This test expects exceptions the JUnit4 way. * It is preferred over the way above. */ @Test(expected = RuntimeException.class) public void doSomethingElseThatThrowsAnException() { throw new RuntimeException(); }

18 Thomas Ferris Nicolaisen - Objectware Test Profiles @Test @IfProfileValue(name = "mock", value = "true") public void thisWillOnlyBeRunIfTheSystemVariableMockIsTrue() { assertEquals("true", System.getProperty("mock")); } @ProfileValueSourceConfiguration(MyProfileValueSource.class) @IfProfileValue(name="test-groups", values={"unit-tests", "integration-tests"}) public void testProcessWhichRunsForUnitOrIntegrationTestGroups() { // some logic that should run only for unit and integration test groups }

19 Thomas Ferris Nicolaisen - Objectware Then the real fun begins.. Use Spring’s data factories –Inject with @Autowired @ContextConfiguration Transaction testing Kan bygges videre på med egne @TestExecutionListeners Uendelige muligheter!

20 Thomas Ferris Nicolaisen - Objectware Q&A?


Download ppt "Thomas Ferris Nicolaisen - Objectware. Sprint TestContext Framework Thomas Ferris Nicolaisen Objectware JavAcademy desember 2007."

Similar presentations


Ads by Google