在测试访问Item.constraints.xyz的类时,如何摆脱“没有这样的属性”?

时间:2011-05-24 16:36:32

标签: unit-testing grails groovy mocking spock

单元测试中的以下星座返回:No such property: title for class: myproject.Item Possible solutions: title

ItemController.groovy

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

ItemControllerSpec.groovy

mockDomain Item
def result = controller.add()

如何模拟约束线?

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

2 个答案:

答案 0 :(得分:2)

通过metaClass。在setUp()中,写下以下内容: Item.metaClass.'static'.constraints = [ title: [ size: [ min: {5}, max: {30} ] ] ]

答案 1 :(得分:1)

如果您的测试类扩展GrailUnitTestCase,请在测试执行前调用mockForConstraintsTests(Item)。如果您无法扩展此类,请在测试执行前尝试调用grails.test.MockUtils.prepareForConstraintsTests(Item)