繁体   English   中英

controller层的Junit5测试用例

[英]Junit5 test case for controller layer

@GetMapping(value = "/abc")
public ResponseDto<Map<String, FResponseDto>, Void> getFlightDetails(@RequestParam String fIds) {

        Map<String, FResponseDto> response = fService
                .getDetails(fIds);
        
        if (Objects.isNull(response)) {
            return ResponseDto.failure(FConstants.FLIGHT_NOT_FOUND);
        }
        
        return ResponseDto.success(FConstants.SUCCESS,response);
        
    }

如何测试其他状态 我想测试 if 和其他返回

此代码可能对您有所帮助。


@WebMvcTest(controllers = YourController.class)
class YourControllerTest {

    private MockMvc mockMvc;

    @Autowired
    private YourController controller;

    @MockBean
    private FService fService;

    @BeforeEach
    public void setUp() {
        this.mockMvc = MockMvcBuilders.standaloneSetup(controller)
                .build();
    }

    @Test
    public void test_getFlightDetails() throws Exception {
        Map<String, FResponseDto> data = ......;
        Mockito.when(fService.getDetails(anyString())).thenReturn(data);

        this.mockMvc.perform(get("/abc"))
                .andExpect(status().isOk());

        Mockito.when(fService.getDetails(anyString())).thenReturn(null);

        this.mockMvc.perform(get("/abc"))
                .andExpect(status().is5xxServerError());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM