| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

单元测试mockito

参考了http://qiuguo0205.iteye.com/blog/1456528 的博客,谢谢!

1、验证动作,我调用了哪些方法。

        List<String>  mockedList = mock(List.class);

        mockedList.add("one");

        verify(mockedList).add("one");

      相反的,还有没有调用哪些方法

        verify(mockedList,never()).add("one");

2、模拟一个接口,正常实现一个接口很麻烦的,但使用mockito,可以轻易实现

        List mockedList = mock(List.class);

        when(mockedList.get(0)).thenReturn("first");

        System.out.println(mockedList.get(0));

      如果你说我多次调用,返回不一样的值

      when(mockedList.get(1)).thenReturn("two").thenReturn("two1");

    System.out.println(mockedList.get(1));

    System.out.println(mockedList.get(1));      

    这个功能设计的,我无法形容,可以想想一个程序员被需求逼到什么程度。太佩服这哥们的脑子了!

3、验证各种动作

    

   List<String> mockedList = mock(List.class);

        // using mock

        mockedList.add("once");


        mockedList.add("twice");

        mockedList.add("twice");


        mockedList.add("three times");

        mockedList.add("three times");

        mockedList.add("three times");


        mockedList.add("five times");

        mockedList.add("five times");

       verify(mockedList).add("once");//验证.add("once")动作

       verify(mockedList, times(1)).add("once");//验证.add("once")动作发生一次。

        verify(mockedList, times(2)).add("twice");//两次

        verify(mockedList, times(3)).add("three times");//三此

        verify(mockedList, never()).add("never happened");   //从来没干过

        verify(mockedList, atLeastOnce()).add("three times");//最少一次

        verify(mockedList, atLeast(2)).add("five times");//最少两次

        verify(mockedList, atMost(5)).add("three times");//最多5次

4、伪造值

        List list = new LinkedList();

        List spy = spy(list);

        when(spy.size()).thenReturn(100);

        System.out.println(spy.get(0));

5、伪造动作 

          List mockedList =  mock(LinkedList.class ) ;

        doThrow(new RuntimeException()).when(mockedList).clear(); //当调用clear()时,抛个异常

        mockedList.clear();

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1420791302125.html
单元测试 Mockito