Java单元测试Mockito的使用详解
Mockito简介
【Java单元测试Mockito的使用详解】调用mock对象的方法时,不会执行真实的方法,而是返回类型的默认值,如object返回null, int返回0等,否则通过指定when(方法).thenReturn(value)来指定方法的返回值。同时mock对象可以进行跟踪,使用verify方法看是否已经被调用过。而spy对象,默认会执行真实方法,返回值可以通过when.thenReturn进行覆盖。可见mock只要避开了执行一些方法,直接返回指定的值,方便做其他测试。
Service测试用例
需要的依赖
junit junit4.12 testorg.mockito mockito-core2.23.4 testorg.springframework.boot spring-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.springframework spring-test5.1.14.RELEASE com.jayway.jsonpath json-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使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- 女生该不该用小号测试男朋友()