Created
May 17, 2012 15:56
-
-
Save eeichinger/2719776 to your computer and use it in GitHub Desktop.
Spring Test / Concordion integration - integrate Concordion with Spring's test runner
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package testsupport; | |
import org.concordion.api.ResultSummary; | |
import org.concordion.internal.FixtureRunner; | |
import org.junit.runner.Description; | |
import org.junit.runners.model.FrameworkMethod; | |
import org.junit.runners.model.InitializationError; | |
import org.junit.runners.model.Statement; | |
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; | |
import java.util.ArrayList; | |
import java.util.Arrays; | |
import java.util.List; | |
public class ConcordionSpringJunit4ClassRunner extends SpringJUnit4ClassRunner { | |
private final Description fixtureDescription; | |
private final FrameworkMethod fakeMethod; | |
private ResultSummary result; | |
public ConcordionSpringJunit4ClassRunner(Class<?> fixtureClass) throws InitializationError, NoSuchMethodException { | |
super(fixtureClass); | |
String testDescription = ("[Concordion Specification for '" + fixtureClass.getSimpleName()).replaceAll("Test$", "']"); | |
fixtureDescription = Description.createTestDescription(fixtureClass, testDescription); | |
fakeMethod = new FrameworkMethod(this.getClass().getDeclaredMethod("computeTestMethods")); | |
} | |
@Override | |
protected List<FrameworkMethod> computeTestMethods() { | |
return new ArrayList<FrameworkMethod>(Arrays.asList(fakeMethod)); | |
} | |
@Override | |
protected Statement methodInvoker(FrameworkMethod method, final Object test) { | |
return new Statement() { | |
public void evaluate() throws Throwable { | |
result = new FixtureRunner().run(test); | |
} | |
}; | |
} | |
@Override | |
protected Description describeChild(FrameworkMethod method) { | |
return fixtureDescription; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ConcordionSpringJunit4ClassRunner supports everything that is supported by Spring & Concordion | |
@RunWith( ConcordionSpringJunit4ClassRunner.class ) | |
@ContextConfiguration("/test-applicationContext.xml") | |
@Transactional | |
@Ignore | |
public class MyConcordionSpecification | |
{ | |
@Autowired | |
MyClassUnderTest instanceUnderTest; | |
// ... whatever | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment