gpt4 book ai didi

java - 如何在 Spock 中模拟 HttpServletRequest

转载 作者:搜寻专家 更新时间:2023-10-31 19:57:15 26 4
gpt4 key购买 nike

我们有一个 ServletFilter,我们想用 Spock 进行单元测试并检查对 HttpServletRequest 的调用。

下面的代码抛出java.lang.ClassFormatError: 类文件 javax/servlet/http/Cookie 中非 native 或抽象的方法中缺少代码属性

def "some meaningless test"(){
given:
HttpServletRequest servletRequest = Mock(HttpServletRequest)

when:
1+1

then:
true
}

JavaEE 5 API(以及 Servlet API)位于类路径中。 Spock 版本是 0.6-groovy-1.8。

我们如何正确地做到这一点?它适用于 Mockito,但我们会失去 Spock 的模拟功能。

编辑:我们知道 Grails 和 Spring 内置的 Servlet 模拟功能,我们只是想知道是否有一种方法可以使用 Spock 模拟来实现。否则你会混合使用模拟设置技术......

最佳答案

Grails 会自动使用您可以在测试中使用的 MockHttpServletRequestMockHttpServletResponseMockHttpSession 配置每个集成测试。

在单元测试中,您需要导入并实例化一个新的 MockHttpServletRequest .

import org.springframework.mock.web.MockHttpServletRequest

def "some meaningless test"(){
given:
def servletRequest = new MockHttpServletRequest()

when:
1+1

then:
true
}

关于java - 如何在 Spock 中模拟 HttpServletRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10751728/

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