Grails: ConfigObject.plus () недоступен в интеграционном тесте - PullRequest
0 голосов
/ 17 октября 2011

Я тестирую сервис, который использует атрибуты конфигурации и объединяет его в строку, например:

 GrailsConfig.config.test.directory + System.getProperty('file.separator')
 + <filename>

При выполнении теста для вышеуказанного метода, содержащего приведенный выше код, я получаю следующую ошибку:

groovy.lang.MissingMethodException: No signature of method:
groovy.util.ConfigObject.plus() is applicable for argument types:
(java.lang.String) values: [\]

Почему оператор плюс недоступен в моем интеграционном (или модульном) тесте?!

Любая помощь приветствуется

Jonas

Ответы [ 3 ]

1 голос
/ 17 октября 2011

Это ошибка, которая появляется, когда вы не определили переменную конфигурации.Возможно, вы определили test.directory в другой среде, но не в среде * 1002. *

В модульном тесте вы должны использовать mockConfig, как подсказывает Дон, но в интеграционном тесте вы можетеиспользуйте среду конфигурации grails так же, как при запуске приложения.

0 голосов
/ 18 октября 2011

Хорошо, я обнаружил проблему ... Все атрибуты String должны быть в кавычках при использовании mockConfig, чего нет в файле настроек out config.

0 голосов
/ 17 октября 2011

Я думаю, GrailsConfig.config.test.directory должен вернуть строку, но вместо этого он возвращает ConfigObject (что не перегружает оператор +). Я никогда не пробовал использовать GrailsConfig в интеграционном тесте, поэтому не знаю, будет ли этот код работать.

Лучшим подходом может быть макетирование значений конфигурации с использованием mockConfig .

...