我正在爲各種bean屬性約束寫入單元測試。對於大多數約束條件,如字段長度,字段格式以及字段是否爲空,我都可以使用JSR303驗證API進行測試。我的問題是,如何爲此約束編寫單元測試:'實體User的字段用戶名必須是唯一的'。我是一個Java開發人員,所以會欣賞基於Java的解決方案,儘管任何答案都是值得歡迎的。實體字段的單元測試唯一性
回答
嘗試存儲具有相同用戶名字段的兩個用戶實體,並檢查是否引發了適當的異常。
異常檢查可以使用JUnit輕鬆完成與@Text標註的「預期」參數的幫助:
@Test(expected=MyException.class)
public void testMyException() {
看到這裏的細節:http://junit.sourceforge.net/doc/faq/faq.htm#tests_7
感謝Kel。我如何斷言異常被拋出?這也意味着如果保存代碼不起作用,檢查唯一性的測試將失敗。單元測試是否可以接受? – joshua 2010-10-29 19:06:06
Kel。我已經學會了如何斷言拋出異常。我想我會用這種方法。我也沒有看到測試持久化實體的方法,因爲它只是代表實體管理器。感謝您的及時回覆。 – joshua 2010-10-29 19:17:07
我已經更新了異常檢查的詳細答案。如果使用已存在的用戶名PASSES保存第二個用戶的代碼(這意味着該唯一性驗證不按預期工作),則檢查唯一性的測試將失敗。我認爲,單元測試是可以接受的,並且有測試手段。 – Kel 2010-10-29 19:18:04
- 1. minitest的唯一性測試
- 2. 在C中檢測新字段/屬性的單元測試#
- 3. 單元測試實體框架
- 4. 實體框架6和單元測試
- 5. 實體框架4.0單元測試
- 6. 單元測試和實體框架
- 7. 單元測試實體框架庫
- 8. 單元測試實體框架驗證
- 9. Assert.AreEqual單元測試DbContext實體
- 10. RSpec 2測試唯一性
- 11. Hibernate的唯一性字段
- 12. 改變單元測試的結構體字段
- 13. 問題單元測試角度反應性表單字段
- 14. 具有ms單元測試框架的單元測試實體框架
- 15. 實施相關實體的唯一性
- 16. 測試實體實體框架6單元測試枚舉後消失
- 17. 單元測試中的性能測試
- 18. 一次性方法的單元測試
- 19. 檢查實體框架中實體屬性的唯一性
- 20. 單元測試具體類
- 21. 更新MySql表 - 在更新過程中測試一個字段的唯一性
- 22. 性能測試對戰單元測試
- 23. 強制子實體的唯一性?
- 24. 單元測試EmberJS應用程序(一個實際的單元測試)
- 25. 實體框架:實現單元測試的接口
- 26. 唯一的實體
- 27. Java的枚舉實現一個字段的唯一性
- 28. 務實單元測試
- 29. 單元測試實現org.springframework.context.ResourceLoaderAware
- 30. 單元測試和屬性
我覺得編譯器將確保沒有兩個字段是一樣的... – rmac 2010-10-29 19:03:16