我正在为 DAO 调用编写单元测试,以使用 Hibernate 将记录插入数据库。
它是事务性的,我以这种方式使用了@Transactional:
@RunWith( SpringJUnit4ClassRunner.class )
@ContextConfiguration(locations={"/spring-servlet.xml"})
@Transactional
public class MyDaoTest {
@Autowired
private MyDao dao;
@Test
@Rollback(false)
public void testAddEmployee() {
// Create some data (line 1)
dao.addPerson(newPerson); // (line 2)
// Query DB (line 3)
// Check result (line 4)
} // (line 5)
}
在上面的代码中,只有当函数在第 5 行终止时才会提交操作。
事实是,在第 3 行和第 4 行,我需要查询数据库以检查插入是否已成功完成。但我不能这样做,因为我的数据仍然没有持久化。
我可以做些什么来测试这个插件?有没有办法在函数结束之前提交?
我在这里添加更多信息。这是控制台输出:
Hibernate: select person0_.ID as ID1_, person0_.NAME as NAME1_ from PERSON person0_
Hibernate: insert into PERSON (NAME) values (?, ?)
Hibernate: select person0_.ID as ID1_, person0_.NAME as NAME1_ from PERSON person0_
为了测试我正在使用 JUnit