我需要在每个 JUnit 测试方法之前执行一些代码。为了执行这段代码,我使用 SpringTest 类 AbstractTestExecutionListener 及其子 TransactionContextTestExecutionListener。
这是代码:
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 方法只在第一次执行测试方法之前被调用。它不会在所有其余的之前调用。
是不是配置有问题?任何的想法?
谢谢