目前,我在测试套件中进行的每项测试后都使用以下内容。但是它使得它非常慢,因为H2必须在每次测试后重新加载应用程序上下文。有没有更快捷的方法来清除我的所有物体,所以我在测试之间没有结转?
@org.junit.After
public void tearDown() throws Exception {
context.close();
}
答案 0 :(得分:7)
尝试 context.clear()
EntityManager.clear:清除持久性上下文,导致所有托管实体分离。对未刷新到数据库的实体所做的更改将不会保留。
Session.clear:完全清除会话。
此外,您可以通过实现单例模式来确保每个测试中使用的实体管理器/会话是相同的。您可以使用动态SQL脚本清除所有表中的数据。两者都在PersistenceHelper here下描述。