Java单元测试Mockito的使用详解

网友投稿 561 2022-10-13


Java单元测试Mockito的使用详解

Mockito简介

调用mock对象的方法时,不会执行真实的方法,而是返回类型的默认值,如object返回null, int返回0等,否则通过指http://定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("http://$.name").value("张三"));

}http://

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:怎么用电脑做wifi热点?|怎么用手机连电脑wifi?(电脑如何开热点让手机连wifi)
下一篇:国标GB28181协议EasyGBS视频平台新增全局主子码流功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~