我正在使用Spring,JPA使用hibernate進行服務 - > dao層。 交易是春天管理。 我有驗證測試用例,其中,我需要驗證重複數據插入並拋出異常。Transactional Spring Junit4測試用例驗證場景
在我的測試案例,這是擴展AbstractTransactionalJUnit4SpringContextTests
我與defaultRollback配置@TransactionConfiguration作爲事務管理真實和bean名稱(在我的情況下,它JpaTransactionManager接口的豆)
我執行這個測試用例如下步驟
通過調用dao.create(entity)創建記錄; (這會成功)
創建一個相同的記錄(以及所有相同的屬性爲在步驟1中設置),並調用dao.create(實體)(這個一定會失敗,但它不是失敗)
在我創建(實體)方法我調用了validate()方法,該方法引發標量對象查詢(JPQL)來驗證。
我期待驗證失敗,但這個工作毫無例外,重複的數據被插入到數據庫中。我發現選擇查詢(標量查詢)無法獲得正確的數據(理想情況下,它應該獲取至少1條記錄,因爲我在上面列出的步驟1中爲它插入了數據)
我看到在選擇查詢進行驗證之前,在日誌中插入對step1的查詢。
是否有任何其他方式來編寫測試用例,這種情況下涉及spring/jpa與hibernate?
請發表您的看法
在此先感謝!