【问题标题】:Execute Grails Filters in Integration Tests在集成测试中执行 Grails 过滤器
【发布时间】:2014-11-04 18:22:12
【问题描述】:

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

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

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

  1. 这是为什么?如果 Grails 确实调用了过滤器,我的测试生活会轻松很多。我的项目大量使用了过滤器,我的许多控制器都依赖我的过滤器来做任何事情。

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

【问题讨论】:

    标签: grails groovy integration-testing spock


    【解决方案1】:

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

    你说得对,它应该可以通过一些自定义代码来实现。当你这样做时,请考虑把它做成一个插件,这样我们都可以分享:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多