Closed m15o closed 9 years ago
When I use jmockit with SpringJUnit4ClassRunner, somehow createTest() is called twice. It causes initialization issue to some TestExecutionListener.
This is a example test case to reproduce this issue.
import mockit.Invocation; import mockit.Mock; import mockit.MockUp; import org.junit.Ignore; public class Test { @Ignore public static class BlockJUnit4ClassRunner { void createTest() { System.out.println("BlockJUnit4ClassRunner.createTest()"); } } @Ignore public static class SpringJUnit4ClassRunner extends BlockJUnit4ClassRunner { @Override void createTest() { System.out.println("SpringJUnit4ClassRunner.createTest()"); super.createTest(); } } public static class BlockJUnit4ClassRunnerDecorator extends MockUp<BlockJUnit4ClassRunner> { @Mock public void createTest(Invocation invocation){ System.out.println("BlockJUnit4ClassRunnerDecorator.createTest()"); invocation.proceed(); } } @org.junit.Test public void test() { new BlockJUnit4ClassRunnerDecorator(); new SpringJUnit4ClassRunner().createTest(); } }
output
SpringJUnit4ClassRunner.createTest() BlockJUnit4ClassRunnerDecorator.createTest() SpringJUnit4ClassRunner.createTest() BlockJUnit4ClassRunner.createTest()
Thanks for the report.
When I use jmockit with SpringJUnit4ClassRunner, somehow createTest() is called twice. It causes initialization issue to some TestExecutionListener.
This is a example test case to reproduce this issue.
output