Grails:UrlMapping测试失败:";不匹配任何映射”;
我正在研究Grails框架并开发一个应用程序 目前我有一个主应用程序,它有几个插件 所以层次结构是这样的:Grails:UrlMapping测试失败:";不匹配任何映射”;,grails,Grails,我正在研究Grails框架并开发一个应用程序 目前我有一个主应用程序,它有几个插件 所以层次结构是这样的: MyMainApp 我的第一个插件 迈斯康德普卢金 我想为我的插件编写UrlMappings测试。我写了文档,可能遗漏了什么,但我无法通过那些f**测试。我总是犯错误 java.lang.IllegalArgumentException:url“/bar”与任何映射都不匹配 这是我的FooUrlMappings类 class FooUrlMappings { static
- MyMainApp
- 我的第一个插件
- 迈斯康德普卢金
class FooUrlMappings {
static mappings = {
"/bar/"(controller: 'foo', action: 'show')
}
}
请注意,我的FooUrlMappings类位于/conf目录中的默认包中
现在,我的控制器FooController的代码:
package be.arexo.ehr.employee.rest
导入be.arexo.ehr.employee.employee
导入grails.converters.JSON
class FooController {
// GET /bar/
def show() {
def result = Bar.list()
render result as JSON
}
}
现在,我的测试课:
import com.example.FooController
import grails.test.mixin.Mock
import grails.test.mixin.TestFor
import grails.test.mixin.web.UrlMappingsUnitTestMixin
@TestFor(FooUrlMappings)
@Mock(FooController)
class FooUrlMappingsTests {
void testBarShow(){
assertForwardUrlMapping("/bar/", controller : "foo", action : "show")
}
}
我的测试也在test/integration目录的默认包中
所以我认为我做了文件中所说的。如果我尝试运行此测试,我将获得:
java.lang.IllegalArgumentException:url“/bar”与任何映射都不匹配
我的错在哪里?有人能帮我吗?您应该将URL映射测试作为单元测试而不是集成测试来运行。这会解决你的问题 @TestFor(FooUrlMappings) 注意,TestFor注释只能在单元测试中使用 我的测试也在测试/集成的默认包中 目录
将您的测试移动到test/unit/目录。您可以添加您要调用的url吗?我只想通过这个测试:assertForwardUrlMapping(/bar/),controller:“foo”,action:“show”)我能想到的唯一一件事是,也许您应该替换已经尝试过的第二个/like“/bar\/”,它不起作用。我在urlMapping和测试中都去掉了第二个斜杠。如下所示:“/bar”(控制器:“foo”,操作:“show”)-assertForwardUrlMapping(“/bar”,控制器:“foo”,操作:“show”)