2016-05-12 10 views
0

Grails 3のBuild-Test-Dataプラグインでテストを実行すると、次のエラーが表示されます。Grails 3のアップグレードテストの問題

groovy.lang.MissingMethodException: No signature of method: com...Item.save() is applicable for argument types:() values: [] Possible solutions: last(), wait(), any(), saveAll([Ljava.lang.Object;), saveAll(java.lang.Iterable), last(java.lang.String) 

これは私が誰がアップしているか知っているテストの第一人者ではないです.save().build()の周りに、通常のですか?

更新

の例では、このようになります...

import grails.buildtestdata.mixin.Build 

@Build(Author) 
class AuthorUnitTests { 

    void testAuthorStuff() { 
     def author = Author.build() 
     ... 
    } 

} 

私のコードは次のように見える...ユニットテストの下

@TestFor(Item) 
@Build([Item]) 
class ItemSpec extends Specification 
{ 
    ... 
    def "Blah Blah"() { 
     given: 
      Item i = Item.build(id: 1) 
    } 
} 
+0

ユニットテストの場合は、プラグインのドキュメントにあるように、クラスレベルで '@Build(Item)'を使用する必要があります。 – dmahapatro

+0

私はちょっと混乱していますが、あなたが指している部分を指すことができますか?私は付録を参照してください – Jackie

+0

上記のアップデートでは、あなたが '@ Build'を使用していることは明らかです。それは動作するはずです。また 'id'を手動で割り当てる必要がありますか? – dmahapatro

答えて

0

はGrailsの3.1.1に渡します。

package com.example 

import grails.test.mixin.TestFor 
import spock.lang.Specification 
import grails.buildtestdata.mixin.Build 

@TestFor(Item) 
@Build(Item) 
class ItemSpec extends Specification { 

    void "test something"() { 
     expect: 
     Item.build(name: 'Test').name == 'Test' 
    } 
} 

build.gradle

compile 'org.grails.plugins:build-test-data:3.0.0' 

はGAVがbuild.gradleに追加プラグインいったんアプリをコンパイル/ビルドすることを確認してください:

gradlew build 

を行う必要があります。

+0

私はgrails 3.0.11を使用していますが、私は再度チェックできます – Jackie