前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mockit测试

mockit测试

原创
作者头像
用户5344449
修改2019-05-07 18:12:24
1.4K0
修改2019-05-07 18:12:24
举报
文章被收录于专栏:cuizh的测试cuizh的测试
代码语言:javascript
复制
 //静态导入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());
 

代码语言:javascript
复制
@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)
	}
}
代码语言:java
复制
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);
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档