【发布时间】:2014-11-14 19:45:27
【问题描述】:
我正在测试我的存储库的更新操作
@Test
public void updateStatusByEmailWithEmailCustomer()
{
customerQuickRegisterRepository.save(standardEmailCustomer());
assertEquals(CUST_STATUS_EMAIL,customerQuickRegisterRepository.findByEmail(CUST_EMAIL).getStatus());
customerQuickRegisterRepository.updateStatusByEmail(CUST_EMAIL,STATUS_EMAIL_VERFIED );
assertEquals(STATUS_EMAIL_VERFIED,customerQuickRegisterRepository.findByEmail(CUST_EMAIL).getStatus());
}
在测试用例中,我将我的实体保存为默认状态,然后我使用 updateStatusByEmail(CUST_EMAIL,STATUS_EMAIL_VERFIED) 将其更改为其他实体,但下一个断言语句仍然失败,这是因为测试执行期间的更新在完成测试后提交....有什么方法可以在测试中提交我的更改?
【问题讨论】:
-
你在使用休眠吗?
-
yes..hibernate 上面有 spring data jpa。
-
测试是否在事务中运行?
-
是的...它正在事务中运行
-
你有没有想过事务传播REQUIRES_NEW?您可以将您的方法封装在另一个由 @Transactional(propagation = Propagation.REQUIRES_NEW) LINK 注释的方法中
标签: spring spring-transactions transactional spring-test spring-test-dbunit