我想在我的应用程序服务中测试事务回滚。因此,我不想使用带有@Transactional注释的spring AbstractTransactionalJUnit4SpringContextTests,因为它会将我的测试方法包装在事务中。
我知道spring还提供了用于无事务测试的AbstractJUnit4SpringContextTests。但是,我需要一些事务来将数据保存到我的数据库中,并在运行测试下的服务后查询断言数据。
如果没有默认的事务测试管理,我如何编写Junit 4 spring事务性测试?
发布于 2010-12-09 04:17:58
这是你问题的答案;
@ContextConfiguration(value = "/applicationContext.xml")
public class JPASpringTest extends AbstractJUnit4SpringContextTests {
@PersistenceContext(unitName="jpadenemelocal")
EntityManager entityManager;
@Autowired
protected PlatformTransactionManager transactionManager;
@Test
public void testInsertRolManyToMany() {
TransactionStatus status = transactionManager.getTransaction(null);
// your code
transactionManager.commit(status);
}
}发布于 2010-09-06 17:10:40
spring文档应该在他们的testing chapter中涵盖这一点
您可能希望不使用默认TransactionalTestExecutionListener来配置测试,如下所示
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class,DirtiesContextTestExecutionListener.class})
public class SimpleTest {
@Test
public void testMethod() {
// execute test logic...
}
}https://stackoverflow.com/questions/3517390
复制相似问题