热门IT资讯网

Java单元测试Mockito如何用

发表于:2024-11-23 作者:热门IT资讯网编辑
编辑最后更新 2024年11月23日,本篇内容介绍了"Java单元测试Mockito如何用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!M

本篇内容介绍了"Java单元测试Mockito如何用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Mockito简介

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

Service测试用例

需要的依赖

              junit            junit            4.12            test                            org.mockito            mockito-core            2.23.4            test                            org.springframework.boot            spring-boot-test            2.1.13.RELEASE        

代码示例

@RunWith(MockitoJUnitRunner.class)@SpringBootTest()public class StudentServiceTest {    @InjectMocks    StudentService studentService = new StudentServiceImpl();    @Mock    StudentDAO     studentDAO;    @Before    public void before(){        Mockito.doReturn(new StudentDO("张三", 18)).when(studentDAO).read(Mockito.anyString());    }    @Test    public void testRead(){        StudentDO read = studentService.read("");        Assert.assertNotNull(read);    }}

Controller测试用例

需要的依赖

            org.springframework            spring-test            5.1.14.RELEASE                            com.jayway.jsonpath            json-path            2.4.0        

代码示例

@RunWith(MockitoJUnitRunner.class)@SpringBootTest()public class StudentControllerTest {    @Resource    MockMvc mockMvc;    @InjectMocks    StudentController studentController;    @Mock    StudentService    studentService;    @Before    public void before() {        mockMvc = MockMvcBuilders.standaloneSetup(studentController).build();        Mockito.doReturn(new StudentDO("张三", 18)).when(studentService).read(Mockito.anyString());    }    @Test    public void testRead() throws Exception {        MockHttpServletRequestBuilder request = MockMvcRequestBuilders.get("/student/read/1");        mockMvc.perform(request)                .andDo(print())                .andExpect(status().isOk())                .andExpect(jsonPath("$.name").value("张三"));    }}

"Java单元测试Mockito如何用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0