2010-10-29 28 views
1

我正在爲各種bean屬性約束寫入單元測試。對於大多數約束條件,如字段長度,字段格式以及字段是否爲空,我都可以使用JSR303驗證API進行測試。我的問題是,如何爲此約束編寫單元測試:'實體User的字段用戶名必須是唯一的'。我是一個Java開發人員,所以會欣賞基於Java的解決方案,儘管任何答案都是值得歡迎的。實體字段的單元測試唯一性

+0

我覺得編譯器將確保沒有兩個字段是一樣的... – rmac 2010-10-29 19:03:16

回答

0

嘗試存儲具有相同用戶名字段的兩個用戶實體,並檢查是否引發了適當的異常。

異常檢查可以使用JUnit輕鬆完成與@Text標註的「預期」參數的幫助:

@Test(expected=MyException.class) 
public void testMyException() { 

看到這裏的細節:http://junit.sourceforge.net/doc/faq/faq.htm#tests_7

+0

感謝Kel。我如何斷言異常被拋出?這也意味着如果保存代碼不起作用,檢查唯一性的測試將失敗。單元測試是否可以接受? – joshua 2010-10-29 19:06:06

+0

Kel。我已經學會了如何斷言拋出異常。我想我會用這種方法。我也沒有看到測試持久化實體的方法,因爲它只是代表實體管理器。感謝您的及時回覆。 – joshua 2010-10-29 19:17:07

+0

我已經更新了異常檢查的詳細答案。如果使用已存在的用戶名PASSES保存第二個用戶的代碼(這意味着該唯一性驗證不按預期工作),則檢查唯一性的測試將失敗。我認爲,單元測試是可以接受的,並且有測試手段。 – Kel 2010-10-29 19:18:04