[英]grails test url parameters
給定此映射:
"/student/degree/$studentid/$degreecode"(controller:'student', action:'degree')
我正在嘗試下面的測試,但都失敗,並出現AssertionFailedError: '...did not match any mapping'
並且兩者都是有效的URL。 我可以使用僅'/ student / degree'的測試URL來成功,我認為它會失敗,因為需要這些參數。
似乎assertURL
方法沒有處理多個參數。 這僅適用於“ id”,並且無法為這些URL創建測試嗎?
@TestFor(UrlMappings)
@Mock([StudentController])
class UrlMappingsTests {
void testUrlMappings() {
assertForwardUrlMapping("/student/degree/102345678/N", controller: "student", action: "degree") {
assertForwardUrlMapping("/student/degree/102345678/N", controller: "student", action: "degree") {
studentid = 102345678
degreecode = "N"
}
}
}
}
經過Grails 2.2.4的測試,它對我有用,我只添加了一個自定義映射類:
package test
class MyUrlMappings {
static mappings = {
"/test/show/$myId/$myVal"(controller: "test", action: "show")
}
}
import spock.lang.*
import test.MyUrlMappings
@TestFor(MyUrlMappings)
@Mock([TestController])
//I'm using Spock
class MyUrlMappingsSpec extends Specification {
void "mapping should consider myId and myVal"() {
expect:
assertForwardUrlMapping("/test/show/1/tst", controller: "test", action: "show") {
//all params considered as String
myId = '1'
myVal = 'tst'
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.