Как я могу избавиться от "нет такого свойства" при тестировании класса, который обращается к Item.constraints.xyz? - PullRequest
1 голос
/ 24 мая 2011

Возвращается следующее созвездие в модульном тесте: 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 ]

2 голосов
/ 25 мая 2011

Через метакласс . В setUp() напишите что-то вроде: Item.metaClass.'static'.constraints = [ title: [ size: [ min: {5}, max: {30} ] ] ]

1 голос
/ 25 мая 2011

Если ваш тестовый класс расширяется GrailUnitTestCase, вызовите mockForConstraintsTests(Item) перед выполнением теста.Если вы не можете расширить этот класс, попробуйте вызвать grails.test.MockUtils.prepareForConstraintsTests(Item) до выполнения теста.

...