簡體   English   中英

驗證場景的事務性Spring Junit4測試用例

[英]Transactional Spring Junit4 test cases for Validation scenario

我正在使用Spring,JPA使用休眠服務-> dao層。 交易是春季管理的。 我有一個驗證測試用例,其中,我需要驗證是否有重復的數據插入並拋出異常。

在我的測試用例中,它是AbstractTransactionalJUnit4SpringContextTests的擴展

我已經將@TransactionConfiguration配置為defaultRollback為true,並且為事務管理器指定了bean名稱(在我的情況下,它是JpaTransactionManager的bean)

我按以下步驟執行此測試用例

  1. 通過調用dao.create(entity);創建記錄。 (這將成功)

  2. 創建相同的記錄(所有屬性都與步驟1中設置的相同)並調用dao.create(entity)(此操作必須失敗,但不能失敗)

  3. 在我的create(entity)方法中,我調用validate()方法,該方法將觸發標量對象查詢(JPQL)進行驗證。

我希望驗證會失敗,但這毫無例外,並且重復數據會插入DB中。

我嘗試調試(啟用了休眠日志),但發現選擇查詢(標量查詢)無法獲取正確的數據(理想情況下,它應該獲取至少1條記錄,因為我在上面列出的步驟1中為其插入了數據。)

在選擇查詢進行驗證之前,我看到在日志中插入針對step1的查詢。

對於這種涉及帶有休眠狀態的spring / jpa的方案,還有其他方法可以編寫測試用例嗎?

請發表您的看法

提前致謝!!

您能否在這里粘貼您的測試,我相信每個測試都在自己的事務中運行,並且您將defaultRollback設置為true。 那應該是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM