Проблема в поиске ресурса интеграционного теста - PullRequest
1 голос
/ 05 июля 2011

Я использую Grails 1.3.6. У меня есть этот код в моем сервисе ...

            if (folder) {
                    path = "json/${folder}/${page}.json"
            } else {
                    path = "json/${page}.json"
            } // if
            def file = ApplicationHolder.application.parentContext.getResource(path).getFile();

Обычно файл корректно извлекается из каталога web-app / json, но когда я запускаю интеграционный тест (через grails test-app), приведенный выше код завершается неудачно при попытке извлечь ресурс ("java.io.FileNotFoundException" : ресурс пути к классу [json / index.json] не может быть преобразован в URL, потому что он не существует "). Ниже мой интеграционный тест. Как мне сказать, где найти ресурс?

Спасибо, - Дейв

class HomeControllerTests extends GroovyTestCase {
...

void testGetAllJSON() {
            def controller = new HomeController()

            // Call action without any parameters
            controller.index()

            def responseStr = controller.response.contentAsString

            assertTrue( isValidJSON(responseStr) )
    } 

1 Ответ

1 голос
/ 05 июля 2011

Это может быть связано с тем, что контекстный путь для тестов отличается от веб-приложения.Попробуйте вместо этого использовать тег ресурса :

if (folder) {
    path = "${resource(dir:'json',file:"${folder}/${page}.json")}"
} else {
    path = "${resource(dir:'json',file:"${page}.json")}"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...