我正在爲我的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