grails - 如何在grails中测试基于参数的重定向

标签 grails spock

例如;

这是我的 Controller 代码,但我不知道如何使用 Spock 在 grails 中为此编写测试用例。

if(params.create){ 
    redirect(action: "create", controller: "premiumFeature") 
}else if(params.taxslab){ 
    redirect(action: "create", controller: "taxSlab") 
} 

在此create 中,taxSlab 是按钮名称

最佳答案

您可以根据响应的 redirectedUrl 属性测试重定向。像这样:

@TestFor(MyController)
class MyControllerSpec extends Specification {

    void "your test"() {
        when: 
        def request = controller.request
        request.addParameter("create", "paramvalue")

        and: 
        controller.yourAction()

        then: 
        response.redirectedUrl == "/premiumFeature/create"
    }
}

关于grails - 如何在grails中测试基于参数的重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25196836/

相关文章:

java - Spock:在 "where"子句表中使用 Mock?

java - Spock 认为测试类的内部枚举应该是 Spec 的属性

java - 如何从 Spock 规范类中提取 BDD 元语句

hibernate - grails 3(spring-boot)-如何配置 hibernate 二级缓存

grails - 如何修复未刷新的GrailsWebApplicationContext?

java - Spock测试中未返回 stub 对象方法值

testing - Geb 设置值以选择问题

hibernate - Grails(Hibernate)确实在插入前进行选择,但未传递id参数值

Grails - 从 war 中运行时位于不同路径的图像

grails - 意外错误 400 :Bad Request HttpBuilder POST Request