我在UrlMappings.groovy中定义了一个基本映射。如果运行我的应用程序并转到/ api / address / zip-code / 12345,我将得到show Action 来响应浏览器的请求。
group("/api/address"){
"/zip-code"( resources: 'zipCode', includes: ['show'] )
}
我试图创建一个测试来验证我的映射是否有效,因为我将在此处创建大量映射,并且希望它们得到测试的支持。这是我的考验。
package com.vega.foo
import com.vega.foo.address.ZipCodeController
import grails.test.mixin.Mock
import grails.test.mixin.TestFor
import spock.lang.Specification
import org.codehaus.groovy.grails.web.mapping.UrlMappings
@TestFor(UrlMappings)
@Mock(ZipCodeController)
class UrlMappingsSpec extends Specification {
void "test zip code mapping"() {
expect:
assertForwardUrlMapping("/api/address/zip-code/12345", controller: 'zipCode', action: "show")
}
}
当我尝试运行此测试时,出现以下错误。
这与您可以编写的URL映射测试一样基本。我在这里想念什么?
最佳答案
PR. This is how I was able to pass unit spec.
更改几乎是我在评论中所做的。
$id
添加到URL映射。 import org.codehaus.groovy.grails.web.mapping.UrlMappings
。 controller
中显式指定action
和UrlMapping
。