Java单元测试Mockito的使用详解

Mockito简介
【Java单元测试Mockito的使用详解】调用mock对象的方法时,不会执行真实的方法,而是返回类型的默认值,如object返回null, int返回0等,否则通过指定when(方法).thenReturn(value)来指定方法的返回值。同时mock对象可以进行跟踪,使用verify方法看是否已经被调用过。而spy对象,默认会执行真实方法,返回值可以通过when.thenReturn进行覆盖。可见mock只要避开了执行一些方法,直接返回指定的值,方便做其他测试。
Service测试用例 需要的依赖

junitjunit4.12testorg.mockitomockito-core2.23.4testorg.springframework.bootspring-boot-test2.1.13.RELEASE

代码示例
@RunWith(MockitoJUnitRunner.class)@SpringBootTest()public class StudentServiceTest {@InjectMocksStudentService studentService = new StudentServiceImpl(); @MockStudentDAOstudentDAO; @Beforepublic void before(){Mockito.doReturn(new StudentDO("张三", 18)).when(studentDAO).read(Mockito.anyString()); }@Testpublic void testRead(){StudentDO read = studentService.read(""); Assert.assertNotNull(read); }}

Controller测试用例 需要的依赖
org.springframeworkspring-test5.1.14.RELEASEcom.jayway.jsonpathjson-path2.4.0

代码示例
@RunWith(MockitoJUnitRunner.class)@SpringBootTest()public class StudentControllerTest {@ResourceMockMvc mockMvc; @InjectMocksStudentController studentController; @MockStudentServicestudentService; @Beforepublic void before() {mockMvc = MockMvcBuilders.standaloneSetup(studentController).build(); Mockito.doReturn(new StudentDO("张三", 18)).when(studentService).read(Mockito.anyString()); }@Testpublic void testRead() throws Exception {MockHttpServletRequestBuilder request = MockMvcRequestBuilders.get("/student/read/1"); mockMvc.perform(request).andDo(print()).andExpect(status().isOk()).andExpect(jsonPath("$.name").value("张三")); }}

到此这篇关于单元测试-Mockito的使用的文章就介绍到这了,更多相关单元测试 Mockito使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读