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

回到顶部