3

index(grailsgenerate-allコマンドによって生成された)アクションのコントローラーをテストする必要があります。私はこのようなテストを持っています(スポックで):

package mnm.schedule

import grails.test.mixin.*
import org.junit.*
import grails.plugin.spock.*
import spock.lang.Specification
import org.example.*;

class UserControllerSpec extends ControllerSpec {


def "test"() {
            setup:
            mockLogging(UserController, true)

            when:
            controller.index()

            then:
            redirectArgs.action == "list"
    }

} 

次のようなエラーが発生します:

Error Error running script test-app :spock : cannot find shared instance field (Use --stacktrace to see the full trace)

しばらくしてテストを実行できるようになりましたが、テストに合格しています。

実際に何がうまくいかないのですか?なぜ初めてそのエラーが表示されるのですか?Spock環境は初めてです。

前もって感謝します。

4

1 に答える 1

3

Grails 2.xxを使用している場合、ミックスインを使用して単体テストフレームワーククラスを拡張する@TestForアノテーションを使用する必要があります。

あなたの場合、メソッド@TestFor(UserController)を使用できるように、クラスレベルのアノテーションとして追加する必要がありますmockLogging

于 2012-03-23T15:56:19.287 に答える