0
按照用戶請求保存操作的行爲是,它會重定向到從選擇的創建操作任何網頁。Grails的3.0.9和蓋布測試空請求對象
在這種情況下是引薦。
的問題是,當我嘗試運行GEB測試來測試此功能,重定向不會發生,當我看的requestReferer()
在創業板測試值,它是null
,和request
值在創業板測試也是null
// Controller's save action
@Transactional
def save() {
def baseUrl = baseUrl()
params.createdBy = currentUser()
params.contactEmail = userEmail()
Item item = new Item(params)
if (params.group) {
itemService.bindItemPropertyData(item, params)
}
if (!item.validate()) {
if (item.isSpecialConstraintViolation()) {
def duplicatedItemUrl = itemAssetService.getDuplicatedItemUrl(item.source, baseUrl)
render view: 'create', model: [ item : item,
map : getListsForView(),
duplicatedSource: duplicatedAssetUrl,
referer : params.referer,
params : params ]
} else {
render view: 'create', model: [ item: item,
map : getListsForView(),
referer : params.referer,
params : params ]
}
} else {
if (params.referer) {
item.save(flush: true)
redirect(uri: params.referer)
} else {
item.save(flush: true)
redirect(action: "show", id: item.id)
}
}
}
// requestReferer() method in controller
private String requestReferer() {
return request.getHeader("referer")
}
// Geb login method
def logIn() {
$("form").username = "user"
$("form").password = "password"
$("button").click()
}
// geb test in question
def "test creating an item"() {
when: "logging in and creating an item"
go '/'
logIn()
go '/item/create'
$("form").name = "Item One"
$("form").source = "Item One"
$("button").click()
then: "item was saved"
$("title").text() == "Item Index"
}