zoukankan      html  css  js  c++  java
  • Mockito

    1、Mockito可以使用两种方法来Mock对象:

      1)通过@Mock注解的方式创建mock对象;

        @Mock
        HttpContext context;

      2)使用mock静态方法

      MyClass test = Mockito.mock(MyClass.class);
      when(test.getUniqueId()).thenReturn(43);

    2、when(…​.).thenReturn(…​.)可以被用来定义当条件满足时函数的返回值,如果你需要定义多个返回值,可以多次定义。

    Iterator i= mock(Iterator.class);
    when(i.next()).thenReturn("Mockito").thenReturn("rocks");
       
    String result
    =i.next()+" "+i.next(); assertEquals("Mockito rocks", result);

    3、Mocks 还可以根据传入参数的不同来定义不同的返回值

    Comparable c= mock(Comparable.class);
    when(c.compareTo(
    "Mockito")).thenReturn(1); when(c.compareTo("Eclipse")).thenReturn(2);
      
    不关心传入的int值是什么,只要是int类型就返回特定值
    when(c.compareTo(anyInt())).thenReturn(-1);
    相应的还有anyString()、anyLong()、any()等,anyObject()表示任何对象,any(clazz)表示任何属于clazz的对象

     4、验证某个方法是否被调用

    验证someClassInstance的someMethod方法是否被调
    verify(someClassInstance).someMethod(arg1, arg2, ...)

    验证someClassInstance的someMethod方法是否被调用了2次
    verify(someClassInstance, times(2)).someMethod(arg1, arg2, ...)

    此外,还有一些其他描述运行次数的方法,包括至多、至少等
    atMost(count), atLeast(count), never()
  • 相关阅读:
    最重要的是动手去做
    java中的native关键字
    用ant重新编译jdk加入调试信息
    UnSupported Encoding错误
    mysql中查看字符集的cmd指令
    java中的IO流读取文件
    分享一个jdk源码链接
    mysql dos启动出现1067错误的解决方法
    vs2010中的外部依赖项的含义
    vs2010中出现:程序管理器匹配不正确错误
  • 原文地址:https://www.cnblogs.com/langren1992/p/9685030.html
Copyright © 2011-2022 走看看