gpt4 book ai didi

java - 如何使用 Spring 和 Mockito 模拟 ContainerRequestContext?

转载 作者:行者123 更新时间:2023-12-02 11:06:14 25 4
gpt4 key购买 nike

我尝试使用 Mockito 模拟 ContainerRequestContext,但出现以下错误:

java.lang.ClassFormatError: Absent Code attribute in method
that is not native or abstract in class file
javax/ws/rs/core/Response

我的目标是在上下文中设置 header 来测试拦截器类。

@RunWith(MockitoJUnitRunner.class) public class
MyInterceptorTest



@Mock
ContainerRequestContext context;

@Mock
MyService service;

@InjectMocks
MyInterceptor interceptor;



@Test
public void shouldAuthorizeUsingHEader() {
when(context.getHeaderString("header1")).thenReturn("123456");
when(context.getHeaderString("header2")).thenReturn("BigBall");

interceptor.filter(context);

verify(context, never()).abortWith(any(Response.class));
}

最佳答案

试试这个
不使用 when().thenReturn() 模拟模式,尝试 doReturn().when() 模拟模式。

例如,更改此:when(context.getHeaderString("header1")).thenReturn("123456");

对此:doReturn("123456").when(mockContext).getHeaderString("header1")

此外,命名模拟对象时,请考虑使用前缀 mock。阅读 junits 时它会非常有帮助写完六个月后。

我在 Mkyong 找到了不同的建议确保您在依赖项中使用了正确的 javaee.jar。再说一遍,虽然不完全匹配。

关于java - 如何使用 Spring 和 Mockito 模拟 ContainerRequestContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50934431/

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