读书人

设定Mock对象的期待行为及返回值

发布时间: 2012-08-21 13:00:21 作者: rapoo

设定Mock对象的期望行为及返回值

package com.lijun.mockito;import static org.mockito.Mockito.*;import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;import org.mockito.Mock;import org.mockito.MockitoAnnotations;/******************************* * 对于final类,匿名类和JAVA基本类型是无法进行Mock的  * 对于static和final修饰的方法是无法进行设定的 *  */public class MockitoSampleTest {// 对接口进行模拟UserService mockUserService = mock(UserService.class);// 对类进行模拟UserServiceImpl mockServiceImpl = mock(UserServiceImpl.class);@MockUser mockUser;@Beforepublic void initMocks() {// 初始化当前测试类所有@Mock注解模拟对象MockitoAnnotations.initMocks(this);}// 模拟接口UserService测试@Testpublic void testMockInterface() {// 对方法设定返回值when(mockUserService.findUserByUserName("tom")).thenReturn(new User("tom", "1234"));// 对方法设定返回值doReturn(true).when(mockUserService).hasMatchUser("tom", "1234");// 对void方法进行方法预期设定User u = new User("John", "1234");doNothing().when(mockUserService).registerUser(u);// 执行方法调用User user = mockUserService.findUserByUserName("tom");boolean isMatch = mockUserService.hasMatchUser("tom", "1234");mockUserService.registerUser(u);assertNotNull(user);assertEquals(user.getUserName(), "tom");assertEquals(isMatch, true);}@Testpublic void testMockClass() {// 对方法设定返回值when(mockServiceImpl.findUserByUserName("tom")).thenReturn(new User("tom", "1234"));doReturn(true).when(mockServiceImpl).hasMatchUser("tom", "1234");User user = mockServiceImpl.findUserByUserName("tom");boolean isMatch = mockServiceImpl.hasMatchUser("tom", "1234");assertNotNull(user);assertEquals(user.getUserName(), "tom");assertEquals(isMatch, true);}@Testpublic void testMockUser() {when(mockUser.getUserName()).thenReturn("tom");assertEquals(mockUser.getUserName(), "tom");}}

读书人网 >编程

热点推荐