这篇文章将为大家详细讲解有关Java单元测试Mockito怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
调用mock对象的方法时,不会执行真实的方法,而是返回类型的默认值,如object返回null, int返回0等,否则通过指定when(方法).thenReturn(value)来指定方法的返回值。同时mock对象可以进行跟踪,使用verify方法看是否已经被调用过。而spy对象,默认会执行真实方法,返回值可以通过when.thenReturn进行覆盖。可见mock只要避开了执行一些方法,直接返回指定的值,方便做其他测试。
需要的依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.23.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<version>2.1.13.RELEASE</version>
</dependency>
代码示例
@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);
}
}
需要的依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.14.RELEASE</version>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.4.0</version>
</dependency>
代码示例
@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怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。