Download presentation
Presentation is loading. Please wait.
Published byHoward Wood Modified over 9 years ago
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
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.