我使用的遊戲!框架,並在編寫可以保存無效模型實例的測試時發現,例如某些實例變量的值無效。我想這是預期的行爲,以保持驗證和持久性分開。但是有什麼方法可以將驗證註釋重用爲數據庫約束?重用驗證爲DB約束
0
A
回答
1
我不知道玩什麼。你使用JSR 303驗證註釋嗎?根據Play documentation,它可以/使用Hibernate來實現持久性。從Hibernate 3.5開始,Hibernate will include constraints通過它生成的模式中的JSR 303註釋表示。
1
號,驗證未鏈接到數據庫的約束。您必須通過SQL在數據庫中手動添加約束,例如使用Play 1.2.1的新的evolutions框架。
在單元測試中,你必須確保你是正確的數據。無論如何,你只應該在模型中測試邏輯,沒有類之間的依賴關係,只需做一些測試來檢查在可以使用它們的地方的意外參數的答案,但不用擔心用錯誤數據保存的實例。
在集成測試和硒的測試,你應該能夠使用由播放通過@Valid控制器上調用所提供的驗證系統。這裏是你應該確保沒有壞數據的對象被持久化,試圖添加一些。
+0
感謝您使用evolutions的變體。對我來說,測試模型實例的驗證屬於單元測試,因爲確定什麼是有效的和什麼不在模型的責任的邏輯。我試圖在單元測試中保存一個無效模型是出於純粹的好奇 - 但它打破了我的心智模式。那麼,它再次固定,感謝您的;) –
相關問題
- 1. 約束驗證
- 2. 約束與驗證?
- 3. Java DB約束
- 4. 約束驗證和淘汰賽驗證
- 5. JPA唯一約束驗證
- 6. 測試驗證約束
- 7. 模型約束驗證
- 8. 重置的p值:在的inputText號碼:就地當DB約束驗證失敗
- 9. HV000030:沒有驗證可以爲約束「javax.validation.constraints.Size」驗證型「java.util.Map」
- 10. 驗證電子郵件應用約束
- 11. 以Orbeon形式禁用約束驗證
- 12. 在驗證程序中使用約束
- 13. 的Symfony驗證:一是產權約束,則類約束
- 14. 爲單元測試禁用驗證約束(使用Spock)
- 15. DB約束違反休眠
- 16. Symfony 2 Foregin Key的驗證約束
- 17. 自定義約束,驗證和空
- 18. 不帶Form的約束驗證與Play2.6
- 19. 驗證數據庫唯一約束
- 20. 正則表達式約束驗證 - grails
- 21. Symfony的2 UniqueEntity約束驗證
- 22. 多輸入驗證約束? C++
- 23. GMF的生活約束 - 驗證
- 24. Spring Boot Hibernate約束驗證器
- 25. Symfony不驗證對象約束
- 26. Bean驗證:方法約束和組
- 27. 唯一性驗證器:範圍約束
- 28. SQL電子郵件驗證約束
- 29. 敲除驗證:動態約束
- 30. Bean驗證中的約束組
我覺得你提的具體是什麼冬眠,不JPA,但我可能是錯的,或者它可能已在默認情況下打殘廢。雖然感謝! –
是的,正如我所指出的,它特定於Hibernate 3.5及更高版本。我鏈接的Play文檔表明Play可以或者不使用Hibernate,所以這看起來應該是可行的。 –
由於Play使用JPA(Hibernate作爲實現),因此可能會被禁用,因此我需要在今天晚上進行測試。我知道有一個事實,我有一個項目沒有應用它們,所以可能就是這樣,默認情況下,這個項目被禁用(或未啓用),以便兼容。 –