grails - 集成测试查找资源中的问题

我正在使用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) )
    } 

最佳答案

这可能是因为测试和Web应用程序的上下文路径不同。尝试改用resource tag:

if (folder) {
    path = "${resource(dir:'json',file:"${folder}/${page}.json")}"
} else {
    path = "${resource(dir:'json',file:"${page}.json")}"
}

https://stackoverflow.com/questions/6583453/

相关文章:

grails - Grails:withFormat在 Action 方法中间

list - 如何在Grails中过滤列表以仅显示特定用户的 'belongsTo'?

regex - 常规正则表达式测试失败

grails - 部署捆绑软件并从Spring EBR获得依赖捆绑软件

grails - grails复合ID无效

json - Grails模型和子模型的JSON响应(一对多)

grails - Grails脚本调用我自己的Java类

grails - 与Grails的零对多关系?

hibernate - Grails中的事务提交事件处理程序

grails - Grails安全过滤器和/index.gsp