【问题标题】:Create HttpServletRequest with session使用会话创建 HttpServletRequest
【发布时间】:2016-05-26 22:55:48
【问题描述】:

我正在尝试覆盖我的 Spring 应用程序,但发现了一些问题。主要是创建一个新的HttpServletRequest 并设置会话以获取和设置属性(以覆盖我的代码的所有行)。这个测试将在 Maven 抛出 JUnit 的情况下自动运行,然后我没有请求不响应。

我正在寻找这个,我发现了 Mockito API,它为我们提供了一种创建 HttpServletRequest 对象的方法,但我无法为该对象设置会话:

HttpServletRequest req = Mockito.mock(HttpServletRequest.class);

有人可以帮我吗?

【问题讨论】:

  • 如果您使用 Spring,请使用 MockHttpServletRequest,这比尝试使用 Mockito 模拟所有内容更容易。或者更好地使用 Spring MockMvc 支持来编写测试。
  • 谢谢。我要试试。
  • 我还要指出,被测业务逻辑不应依赖于任何 servlet 规范工件;充其量您需要模拟请求的唯一原因是测试调用业务逻辑的编组逻辑。完成此操作后,您可能会发现集成测试更适合 Web 层。

标签: java spring maven httpsession


【解决方案1】:

好的,我解决了。 @M 的评论。 Denium 是对的,但请注意 Spring 版本。第一次尝试时,我导入了spring-mock 库的MockHttpServletRequest,得到了NoSuchMethodError。这是关于 Spring 版本的,spring-mock 用于 Spring 1 和 2。对于 Spring 3 或 4,使用 spring-test library,它会起作用。

【讨论】:

    猜你喜欢
    • 2011-01-19
    • 2020-12-08
    • 2014-12-22
    • 2016-06-06
    • 1970-01-01
    • 2012-04-19
    • 2017-03-08
    • 2021-12-25
    • 2014-08-27
    相关资源
    最近更新 更多