Тестирование моего контроллера с помощью Спока - PullRequest
3 голосов
/ 22 марта 2012

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

3 голосов
/ 23 марта 2012

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

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

...