gpt4 book ai didi

testing - 在grails的集成测试中测试beforeInterceptor

转载 作者:行者123 更新时间:2023-11-28 19:52:45 24 4
gpt4 key购买 nike

有没有办法测试这个拦截器?它在我的测试中被忽略了。

代码:

class BaseDomainController {
def beforeInterceptor = {
throw new RuntimeException()
if(!isAdmin()){
redirect(controller: 'login', action: 'show')
return
}
}
}

class BaseDomainControllerSpec extends IntegrationSpec{

BaseDomainController controller = new BaseDomainController()

def 'some test'(){
given:
controller.index()
expect:
thrown(RuntimeException)
}

}

最佳答案

根据这个线程http://grails.1312388.n4.nabble.com/Controller-interceptors-and-unit-tests-td1326852.html Graeme 表示您必须单独调用拦截器。在我们的例子中,因为我们使用拦截器来检查 token ,并且它对每个操作都是相同的,所以我们使用:

@Before
void setUp()
{
super.setUp();
controller.params.token = "8bf062eb-ec4e-44ae-8872-23fad8eca2ce"
if (!controller.beforeInterceptor())
{
fail("beforeInterceptor failed");
}
}

我想如果每个单元测试为拦截器指定不同的参数,您将不得不每次单独调用它。如果不想这样做,我认为您必须使用类似 Grail 的功能测试之类的东西,它将贯穿整个生命周期:http://grails.org/plugin/functional-test

关于testing - 在grails的集成测试中测试beforeInterceptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12633231/

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