Тестирование моего контроллера с помощью Спока

Мне нужно проверить контроллер, действий index(генерируется Граалем generate-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)

Через некоторое время я могу запустить тест, тест становится пройденным.

Что на самом деле идет не так? Почему в первый раз показывает эту ошибку? Я новичок в среде Спока.

Заранее спасибо.

1 ответ

Решение

Учитывая, что вы используете Grails 2.xx, вы должны использовать аннотацию @TestFor, которая расширяет классы фреймворка модульного тестирования с помощью миксинов.

В вашем случае вы должны добавить @TestFor(UserController) в качестве аннотации на уровне класса, так что вы можете использовать mockLogging метод.

Другие вопросы по тегам