模拟java如何内置HttpStatus等枚举及其方法
我试图使用mockito模拟HttpStatus方法模拟java如何内置HttpStatus等枚举及其方法,java,junit,enums,mockito,Java,Junit,Enums,Mockito,我试图使用mockito模拟HttpStatus方法 @Autowired Handler handler; @Mock Request request; @Mock Response aAResponse; @Mock RestHandler restHandler logger.info("Response's HttpStatus is2xxSuccessful is false"); try { Mockito.when(restHandler.getRe
@Autowired
Handler handler;
@Mock
Request request;
@Mock
Response aAResponse;
@Mock
RestHandler restHandler
logger.info("Response's HttpStatus is2xxSuccessful is false");
try {
Mockito.when(restHandler.getResponse(request)).thenReturn(aAResponse);
Mockito.when(aAResponse.getHttpStatus()).thenReturn(HttpStatus.ACCEPTED);
Mockito.when(aAResponse.getHttpStatus().is2xxSuccessful()).thenReturn(false);
handler.fetchDetails(notification, provider, mapping);
} catch (Exception e) {
logger.error("Exception -> {}", e.getMessage());
}
但是
是给我空的。如何使用Mockito模拟枚举值及其方法。模拟枚举值及其方法是否正确
final Response response = restHandler.getResponse(request);
我知道响应是final的,mockito不能模拟final对象,但为此我遵循了答案当您可以模拟返回枚举的方法时,为什么要模拟枚举 替换
Mockito.when(aAResponse.getHttpStatus().is2xxSuccessful()).thenReturn(false);
与
您不希望模拟枚举返回特定值。您希望响应的状态为非成功错误代码…就个人而言,我会模拟
getHttpStatus()
的结果以返回成功状态。您可以向我们展示您的完整测试类吗?这是否回答了您的问题@弗雷德试过了。但是没有用。”Mockito.when(aARespose.getHttpStatus()).thenReturn(HttpStatus.ACCEPTED)“@SteffenJacobs No.我想模拟枚举方法。我也尝试过这个。但它不起作用。它不是模拟getHttpStatus()方法,而是返回原始值,即200 Ok。
Mockito.when(aAResponse.getHttpStatus().is2xxSuccessful()).thenReturn(false);
Mockito.when(aAResponse.getHttpStatus()).thenReturn(HttpStatus.NOT_FOUND);