我有一個領域類屬於兩個其他領域類與幾個驗證。如何在Grails中測試時忽略驗證的域對象?
可以說域名類書屬於作者。在測試Book域類時,我只想訪問Author對象,而無需使用Author的所有複雜驗證創建它。這可能嗎?
我有一個領域類屬於兩個其他領域類與幾個驗證。如何在Grails中測試時忽略驗證的域對象?
可以說域名類書屬於作者。在測試Book域類時,我只想訪問Author對象,而無需使用Author的所有複雜驗證創建它。這可能嗎?
保存Author
的實例時,只需通過validate: false
即可。
Author authorInstance = new Author()
authorInstance.save(validate: false)
這將防止在Grails的水平驗證,但不知道如何當寫入到數據庫級別,這將表現。
build-test-data plugin對於這個問題是一個很好的解決方案,它允許你創建/保存一個域對象,只爲你關心的屬性指定值。該插件將負責填寫任何其他所需屬性/對象的值。例如,如果一本書需要一個作者,名稱,書號,但你的測試只關心這本書的標題,你可以簡單地寫
def book = Book.build(title: 'Great Expectations')
該插件將創建的ISBN和作者有效值和保存的護理一切到數據庫。
如果在數據庫層違反約束條件,它會拋出異常 –
不確定這是否可行。 – bhushan154
構建測試數據插件可能是我在下面Donal回答之後所做的。 – bhushan154