模拟java如何内置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

我试图使用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.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);