在集成测试中执行Grails过滤器

时间:2014-11-04 18:22:12

标签: grails groovy integration-testing spock

我通过了Grails的集成测试文档,我注意到了这一行:

  

在集成测试期间调用操作时,Grails不会调用拦截器或servlet过滤器。

来源:http://grails.org/doc/latest/guide/testing.html#integrationTesting

  1. 这是为什么?如果Grails确实调用了过滤器,这将使我的测试生活变得更加容易。我的项目大量使用过滤器,我的许多控制器依赖于我的过滤器来做任何事情。

  2. 我在考虑它,似乎可以使用groovy black magic在集成测试中自动执行过滤器。有没有人已经这样做了,或者这是我必须写的东西?

1 个答案:

答案 0 :(得分:4)

用于集成测试的环境类似于run-app期间可用的环境; Spring处于活动状态,插件已加载,数据库可用等等。除了Web服务器之外,几乎所有内容都是如此。没有服务器,没有真正的请求,没有servlet过滤器,也没有Grails过滤器(它们是Spring控制器HandlerAdaptor的包装器)。测试控制器时,由于Spring servlet API模拟类,您可以访问请求和响应。但是真正的网络请求生命周期都没有活动,它们都只是模拟的。

你是对的,它应该可以使用一些自定义代码。执行此操作时,请考虑将其设为插件,以便我们共享:)