gpt4 book ai didi

grails - 测试资源 Controller 的 UrlMapping 路径

转载 作者:行者123 更新时间:2023-12-01 06:28:36 24 4
gpt4 key购买 nike

在 Grails 2.3 及更高版本中,现在有资源 Controller 的概念。但是,它们似乎不适用于 assertUrlMappings 概念。

/foo (resources:"foo")

然后在 url-mappings-report 中出现以下内容:

Controller: foo
| GET | /foo | Action: index
| GET | /foo/create | Action: create
| POST | /foo | Action: save
| GET | /foo/${id} | Action: show
| GET | /foo/${id}/edit | Action: edit
| PUT | /foo/${id} | Action: update
| PATCH | /foo/${id} | Action: patch
| DELETE | /foo/${id} | Action: delete

但是,在以下文件中,无法测试 url:

@TestFor(UrlMappings)
@Mock(FooController)
class FooURIReverseMappingsSpec extends Specification {

def "Ensure basic mapping operations for Foo uris"() {
expect:
assertUrlMapping(url, controller: expectCtrl, action: expectAction) {
id = expectId
}
where:
url | expectCtrl | expectAction | expectId
// Not sure why, but the resource controller generation url test does not find the real 'Foos' url
'/foo/123'|'foo'|'show'|'123'
}
}

如果没有默认操作 url $controller/$action/$id(将匹配 foo/show/123),测试将找不到生成的 url。

生成的错误是: junit.framework.AssertionFailedError: url '/foo/123' 不匹配任何映射

有没有办法测试资源 url?

最佳答案

我知道这个问题已有 5 年多了,但为了将来引用,该问题可能与 this grails-core Github issue (URLMapping unit test for RESTfull service is not working) 中的问题相同.

这个问题显然是由 this PR (Include request method in URL matching) 解决的.看起来此修复已合并到 Grails 2.5.x 中。

关于grails - 测试资源 Controller 的 UrlMapping 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com