我需要在每个JUnit测试方法之前执行一段代码。为了执行这段代码,我使用了SpringTest类AbstractTestExecutionListener及其子TransactionContextTestExecutionListener。JUnit - 之前的方法
这是代码:
public class TransactionContextTestExecutionListener extends AbstractTestExecutionListener{
private static final Logger logger = Logger.getLogger(TransactionContextTestExecutionListener.class);
@Override
public void beforeTestMethod(TestContext testContext) throws Exception {
Object ctx = testContext.getApplicationContext().getBean(Context.class);
}
我的JUnit类的样子:
@ContextConfiguration(locations = "classpath:/META-INF/spring-test/tests-context.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners(TransactionContextTestExecutionListener.class)
@Transactional
public class SelectQueryBuilderTest {}
问题是,前第一执行 测试方法beforeTestMethod方法只调用。在所有其他人之前并没有被召唤。
配置有问题吗?任何想法?
感谢
只是好奇,如果你已经尝试了标准的JUnit @Before注解? – btiernay