1

単体テストで次のコンスタレーションが返されます。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()

その制約行をどのようにモックアウトできますか?

注:その行が原因で失敗するのではなく、テストを実行したいだけです。

4

2 に答える 2

2

metaClass経由。にsetUp()、次のように記述します。 Item.metaClass.'static'.constraints = [ title: [ size: [ min: {5}, max: {30} ] ] ]

于 2011-05-24T20:41:59.693 に答える
1

テスト クラスが拡張する場合は、テストを実行する前GrailUnitTestCaseに呼び出します。mockForConstraintsTests(Item)このクラスを拡張できない場合はgrails.test.MockUtils.prepareForConstraintsTests(Item)、テストを実行する前に呼び出してみてください。

于 2011-05-25T08:37:38.507 に答える