【发布时间】:2017-01-30 11:57:54
【问题描述】:
我想检查我的持久性逻辑,所以我正在运行一些测试用例。
存储库类:
@Repository
public class MyRepository {
public void add(Object obj) {
/* Do some stuff here */
getSession().persist(obj);
}
}
测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Context.class})
public class MyTests {
@Inject
private MyRepository myRepository;
@Test
@Rollback(true)
public void foo() {
/* Test logic */
myRepository.add(obj);
Assert.assert...;
}
}
单元测试:MyTests.java 包含测试一些与持久性相关的东西的测试用例,而不是实际的 Hibernate 持久性本身,因此这就是 getSession.persist() 语句已过时的原因。
出于性能原因,我想阻止 Hibernate 将数据存储到我的数据库中,即使整个数据交互都回滚了。我的方法是模拟:getSession().persist()。有没有更好或更具体的更简单的方法来实现我的意图?
【问题讨论】:
标签: java spring hibernate junit