Unit testing 我怎样才能摆脱“我的”呢;没有此类财产”;测试访问Item.constraints.xyz的类时?

Unit testing 我怎样才能摆脱“我的”呢;没有此类财产”;测试访问Item.constraints.xyz的类时?,unit-testing,grails,groovy,mocking,spock,Unit Testing,Grails,Groovy,Mocking,Spock,单元测试中的以下星座返回:没有这样的属性:class:myproject的title。项可能的解决方案:title ItemController.groovy def add = { [itemInstance: new Item(), titleMin: Item.constraints.title.size.min() ] } mockDomain Item def result = controller.add() ItemControllerSpec.groovy def

单元测试中的以下星座返回:
没有这样的属性:class:myproject的title。项可能的解决方案:title

ItemController.groovy

def add = { 
    [itemInstance: new Item(), titleMin: Item.constraints.title.size.min() ] 
}
mockDomain Item
def result = controller.add()
ItemControllerSpec.groovy

def add = { 
    [itemInstance: new Item(), titleMin: Item.constraints.title.size.min() ] 
}
mockDomain Item
def result = controller.add()
如何模拟该约束行?

注意:我只希望测试运行,而不是因为该行而失败。

Via。在
setUp()
中,编写如下内容:
Item.metaClass.static.constraints=[title:[size:[min:{5},max:{30}]]
如果测试类扩展了
GrailUnitTestCase
,请在测试执行之前调用
mockForConstraintsTests(Item)
。如果无法扩展此类,请在测试执行之前尝试调用
grails.test.MockUtils.prepareForConstraintsTests(Item)

Don,这两个变体都会失败,并显示与我最初文章中描述的相同的错误消息。我还尝试了新生成的ItemControllerTests.groovy,只使用了
testSomething
。你自己也有过类似的情况吗?在我的案例中失败了。然而,多亏了你的提示,Victor,我终于想出了以下解决方案:
Item.metaClass.static.getConstraints={[title:[size:5..20]]}