我正在研究 Grails 框架并开发应用程序。
目前我有一个包含多个插件的主应用程序。
所以层次结构是这样的:
- 我的主应用程序
- 我的第一个插件
- 我的第二插件
- ...
我想为我的插件编写 UrlMappings 测试。我写了文档,我可能遗漏了一些东西,但我无法通过那些 f* *测试。我总是抓住错误
java.lang.IllegalArgumentException: url '/bar' 不匹配任何映射
这是我的 FooUrlMappings 类
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' 不匹配任何映射
我的错误在哪里?有人能帮助我吗 ?