大家好,我是神韵,是一个技术&生活博主。出文章目的主要是两个,一是好记忆不如烂笔头,记录总结中提高自己。二是希望我的文章可以帮到大家。欢迎来点赞打卡,你们的行动将是我无限的动力。
本篇主题是:Controller层的测试类怎么写?
需要测试的接口:主要是为了保证圈圈里面的逻辑正确
测试代码
@RunWith(MockitoJUnitRunner.class)
public class UnitTestControllersTest {
@Mock
UnitTestService unitTestService;
@InjectMocks
UnitTestControllers unitTestControllers;
UnitTestEntity unitTestEntity = null;
UnitTestReqDTO unitTestReqDTO = null;
UnitTestRspDTO unitTestRspDTO = null;
@Before
public void init() {
unitTestEntity = new UnitTestEntity(Integer.valueOf(0), "content");
unitTestReqDTO = new UnitTestReqDTO();
unitTestRspDTO = new UnitTestRspDTO();
unitTestRspDTO.setId(unitTestEntity.getId());
unitTestEntity.setContent(unitTestEntity.getContent());
}
@Test
public void testUnitTest() throws Exception {
when(unitTestService.queryUnitTestByContent(any())).thenReturn(unitTestEntity);
UnitTestRspDTO result = unitTestControllers.unitTest(unitTestReqDTO);
Assert.assertEquals(unitTestRspDTO.getId(), result.getId());
}
}
接口代码也给上
@RestController
public class UnitTestControllers {
@Autowired
private UnitTestService unitTestService;
@PostMapping("/unitTest")
public UnitTestRspDTO unitTest(@RequestBody UnitTestReqDTO unitTestReqDTO) {
UnitTestEntity unitTestEntity = unitTestService.queryUnitTestByContent(new UnitTestEntity(unitTestReqDTO.getId(), unitTestReqDTO.getContent()));
UnitTestRspDTO unitTestRspDTO = new UnitTestRspDTO();
unitTestRspDTO.setId(unitTestEntity.getId());
unitTestEntity.setContent(unitTestEntity.getContent());
return unitTestRspDTO;
}
}