我正在为我的DAO编写一些测试,并且因为很多测试使用了保存到我的数据库的测试对象,我创建了一个setup()和teardown()方法(注释@Before和@After)以避免多余的代码,但其中一个测试,实际上并不需要测试对象的一个测试,在DAO中调用一个包含调用getCurrentSession()的方法。这是一种使用ScrollableResults从批处理中获取数据的方法,并且避免内存填满每50行调用flush()和clear()的方法。这就产生了一个问题,因为清()实际上消除了在从会话建立()创建的测试对象,所以当拆除()被调用我得到一个错误:@Before和@After排除
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [nl.ru.cmbi.pdbeter.core.model.domain.PDBEntry#395]
有没有一种办法告诉JUnit不要在这个测试中使用setup()和teardown(),还是把所有不需要setup()和teardown()的测试放在新的测试类中更好?
感谢您的快速回答!然后,我将创建一个新的测试课程。而且我已经在使用spring的事务中运行测试;) – FinalArt2005 2010-11-02 13:50:28