Forked from eeichinger/ConcordionSpringJunit4ClassRunner.java
Created
August 25, 2017 10:49
-
-
Save yanhua365/76424fd6e9ca73b3d81e4ebe608f260f to your computer and use it in GitHub Desktop.
Spring Test / Concordion integration - integrate Concordion with Spring's test runner
This file contains 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 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