mockit测试

时间:2022-06-20
本文章向大家介绍mockit测试,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
 //静态导入mockit包
 import static org.mockito.Mockito.*;

 //创建mock,mock一个接口
 List mockedList = mock(List.class);

 //使用mock对象
 mockedList.add("one");
 mockedList.clear();

 //验证行为
 verify(mockedList).add("one");
 verify(mockedList).clear();
 
 
 //mock具体的类
 LinkedList mockedList = mock(LinkedList.class);

 //stubbing 存根
 when(mockedList.get(0)).thenReturn("first");
 when(mockedList.get(1)).thenThrow(new RuntimeException());

 //prints "first"
 System.out.println(mockedList.get(0));

 //throws runtime exception
 System.out.println(mockedList.get(1));

 //prints "null" 因为get(999) 没有存根
 System.out.println(mockedList.get(999));

 //验证存根调用,但通常它只是多余的
 verify(mockedList).get(0);
 
  //使用内置的anyInt()参数匹配器进行存根
 when(mockedList.get(anyInt())).thenReturn("element");
 //prints "element"
 System.out.println(mockedList.get(999));

 //使用参数匹配器进行验证
 verify(mockedList).get(anyInt());
 
@RunWith(MockitoJUnitRunner.class)    (2)
public class ArticleManagerTest {

   @Mock private ArticleCalculator calculator;
   @Mock private ArticleDatabase database;
   @Mock private UserProvider userProvider;

   private ArticleManager manager;
   
   @Rule public MockitoRule rule = MockitoJUnit.rule();    (3)
   
   @Before  
	public void initMocks() {  
		MockitoAnnotations.initMocks(this);  (1)
	}
}
public class MockitoTest {
    //自动将mock字段注入测试对象。
    @InjectMocks private UserServiceImpl userServiceImpl;
    @Mock private UserMapper mapper;
    @Rule public MockitoRule rule = MockitoJUnit.rule();

    @Test
    public void testGet() {
        MockitoAnnotations.initMocks(this);
        User user = new User();
        user.setName("huaAn");
        Mockito.when(mapper.get(0)).thenReturn(user);
        
        assertTrue(userServiceImpl.getUser(0).equals(user));
        verify(mapper).get(0);
    }
}

public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper mapper;
    @Override
    public User getUser(Integer id) {
        return mapper.get(id);
    }
}