JUnit测试始终回滚事务
我正在运行一个简单的JUnit测试,又是一个应用程序DAO。问题是我总是得到:
javax.persistence.RollbackException: Transaction marked as rollbackOnly
JUnit测试是:
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"classpath:com/my/app/context.xml"}
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@Transactional
public class PerformanceTest {
@Test
@Transactional(propagation= Propagation.REQUIRES_NEW)
@Rollback(false)
public void testMsisdnCreationPerformance() {
// Create a JPA entity
// Persist JPA entity
}
}
如你所见,我明确声明不回滚此方法。
Spring JUnit支持是否总是将rollback设置为true?
回答:
它应该可以正常工作,就像你期望的那样,但是可能是你在被测类中打开了另一个事务,或者某个地方有其他功能/或错误。
顺便说一句,这个注释应该是足够的:
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"classpath:com/my/app/context.xml"}
@Transactional
public class PerformanceTest {
@Test
@Rollback(false)
public void testMsisdnCreationPerformance() {
// Create a JPA entity
// Persist JPA entity
}
}
以上是 JUnit测试始终回滚事务 的全部内容, 来源链接: utcz.com/qa/428292.html