Сбой модульного теста с GrailsConfigurationException - не удается найти ответственную строку кода

Я пишу модульные тесты для своего приложения Grails 3.0.3 со стандартной структурой spock. Все как в лесах

grails create-app  

Я создал свой модульный тест с

grails create-unit-test

Вручную добавлена ​​аннотация @TestFor и логика тестирования. я получил

mypackage.MyClassSpec > test myMethod method FAILED
org.grails.core.exceptions.GrailsConfigurationException

GIST моего тестового класса (обобщенный и упрощенный)

В трассировке стека после запуска нет номера строки

grails test-app --stacktrace

Как я могу узнать, что вызывает это исключение?


person Piotr Zakrzewski    schedule 21.08.2015    source источник
comment
Что нужно для работы метода toTsv(listOfMaps)? Настройки конфигурации? Другие услуги? Все они должны быть смоделированы в примере модульного теста. Не видя кода toTsv, трудно найти конкретные идеи для помощи.   -  person railsdog    schedule 21.08.2015
comment
Привет, спасибо за ваши замечания. Это автономный метод, который не зависит от какой-либо внешней службы, он просто принимает список карт. Однако я решил эту проблему - я удалил аннотацию @TestFor... и теперь она работает. Я все еще хотел бы понять, почему это терпит неудачу, я все еще изучаю Grails и Spock, так что это может быть какая-то элементарная ошибка.   -  person Piotr Zakrzewski    schedule 21.08.2015


Ответы (1)


Аннотация TestFor используется для тестирования артефактов Grails (да, это как это написано в исходном коде).

Аннотация TestFor определяет тестируемый класс и автоматически создает поле для типа тестируемого класса. Например, в приведенном выше случае будет присутствовать поле «контроллер», однако, если TestFor был определен для службы, будет создано поле «служба» и так далее.

Тестируемый вами класс — это обычный класс Groovy, а не контроллер Grails, служба и т. д. Итак, БАМ! У тебя неловкое исключение.

person Emmanuel Rosa    schedule 21.08.2015