字段摘要

类型 字段以及描述
static Answer< Object > CALLS_REAL_METHODS
用于mock(Class, Answer)的可选参数Answer

字段详情

**CALLS_REAL_METHODS**
public static final Answer CALLS_REAL_METHODS

用于mock(Class, Answer)的可选参数Answer

Answer可以用于定义unstubbed invocations的返回值.

这个Answer接口对于legacy code非常有用. 当使用这个接口的时候, unstubbed methods会被实现.
这是一种通过调用默认方法来创建partial mock对象的方式。

通常,你将要阅读mock的部分警告:Object oriented programming is more less tackling complexity by dividing the complexity into separate, specific, , SRPy objects.
partial mock是如果适应这种模式的呢?好吧!它不仅仅是,partial mock通常意味着复杂性在同一个对象中移动到不同的方法.在大多数情况下,这不是你想要的设计你的应用的方式。

然而,当partial mocks派上用场同样也有少许情况:处理你不易改变的代码(第三方接口,legacy code的临时重构).我将不使用partial mocks用于新的、测试驱动以及设计不错的代码。

例如:


Foo mock = mock(Foo.class, CALLS_REAL_METHODS);

// this calls the real implementation of Foo.getSomething()
value = mock.getSomething();

when(mock.getSomething()).thenReturn(fakeValue);

// now fakeValue is returned
value = mock.getSomething();

方法摘要

Modifier and Type Method and Description
static VerificationAfterDelay after(long millis)
给定的时间后进行验证
static VerificationMode atLeast(int minNumberOfInvocations)
至少进行minNumberOfInvocations次验证
static VerificationMode atLeastOnce()
至少进行一次验证
static VerificationMode atMost(int maxNumberOfInvocations)
最多进行maxNumberOfInvocations次验证
static VerificationMode calls(int wantedNumberOfInvocations)
允许顺序进行non-greedy验证

方法详情

after

在给定的时间后进行验证。它会为了预期的效果进行等待一段时间后进行验证,而不是因为没发生而立即失败。这可能对于测试多并发条件非常有用。

after()等待整个周期的特点不同于timeout(),而timeout()一旦验证通过就尽快停止,例如:当使用times(2)可以产生不同的行为方式,可能通过后过会又失败。这种情况下,timeout只要times(2)通过就会通过,然后after执行完整个周期时间,可能会失败,也意味着times(2)也失败。

感觉这个方法应该少使用——找到更好的方法测试你的多线程系统。

对尚未实现的工作进行验证。

参照Mockito类的javadoc帮助文档中的例子

Parameters:

  • millis – – time span in milliseconds

Returns:

  • verification mode

atLeast

允许至少进行x次验证。例如:

参照Mockito类的javadoc帮助文档中的例子

Parameters:

  • minNumberOfInvocations – invocations的最小次数

Returns:

  • verification mode

atLeastOnce

至少进行一次一次验证。例如:

atLeast(1)的别名.
参照Mockito类的javadoc帮助文档中的例子

Returns:

  • verification mode

atMost

至多进行x次验证. 例如:

参照Mockito类的javadoc帮助文档中的例子

Parameters::

  • maxNumberOfInvocations – invocations的最大次数

Returns:

  • verification mode

calls

允许顺序进行non-greedy验证. 例如:

  • 如果这个方法调用3次不会失败,不同于times(2)
  • 不会标记第三次验证,不同于atLeast(2)

这个verification mode只能用于顺序验证.

Parameters::

  • wantedNumberOfInvocations – 验证的次数

Returns:

  • verification mode

继承org.mockito.Matchers的方法

any

匹配任何值,包括null

anyObject()的别名

参照Matchers类的javadoc帮助文档中的例子

这是: anyObject() and any(java.lang.Class)的别名

Returns:

  • null

any

匹配任何对象,包括null

这个方法不进行给定参数的类型检查,它就是为了避免代码中的强制转换(Casting)。然而这可能会改变(类型检查可以添加)将来的主要版本。

参照Matchers类的javadoc帮助文档中的例子

这是: anyObject() and any(java.lang.Class)的别名

Returns:

  • null

anyBoolean

任何boolean类型或非空(non-null)的Boolean.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • false

anyByte

任何byte类型变量或非空(non-null)Byte.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 0

anyChar

任何char类型变量或非空(non-null)的Character.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 0

anyCollection

任何非空(non-null)的Collection.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 空Collection.

anyCollectionOf

通用友好的别名anyCollection()。为了保持代码清洁,通过@SuppressWarnings(“unchecked”)来进行替代编译器警告。

任何非空(non-null)Collection.

这个方法不进行给定参数的类型检查,它就是为了避免代码中的强制转换(Casting)。然而这可能会改变(类型检查可以添加)将来的主要版本。

参照Matchers类的javadoc帮助文档中的例子

Parameters

  • clazz – 类型属于Collection类型避免类型转换(Casting)

Returns:

  • 空Collection.

anyDouble

任何double类型或非空(non-null)的Double.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 0.

anyFloat

任何float类型或非空(non-null)Float.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 0.

anyInt

任何int或非空(non-null)Integer.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 0.

anyList

任何非空(non-null)List.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 空List.

anyListOf

通用友好的别名anyList()。为了保持代码清洁,通过@SuppressWarnings(“unchecked”)来进行替代编译器警告。

任何非空(non-null)List.

这个方法不进行给定参数的类型检查,它就是为了避免代码中的强制转换(Casting)。然而这可能会改变(类型检查可以添加)将来的主要版本。

参照Matchers类的javadoc帮助文档中的例子

Parameters:

  • clazz – 类型属于List类型避免类型转换(Casting)

Returns:

  • 空List.

anyLong

任何long类型或非空(non-null)Long.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 0.

anyMap

任何非空(non-null)Map.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 空Map.

anyMapOf

通用友好的别名anyMap()。为了保持代码清洁,通过@SuppressWarnings(“unchecked”)来进行替代编译器警告。

任何非空(non-null)Map.

这个方法不进行给定参数的类型检查,它就是为了避免代码中的强制转换(Casting)。然而这可能会改变(类型检查可以添加)将来的主要版本。

参照Matchers类的javadoc帮助文档中的例子

Parameters:

  • keyClazz – map key类型避免类型强制转换(Casting)
  • valueClazz – value类型避免类型强制转换(Casting)

Returns:

  • 空Map.

anyObject

匹配任何事物, 包含null.

这是: any()和any(java.lang.Class)的别名

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • empty null.

anySet**

任何非空(non-null)Set.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 空Set.

anySetOf

通用友好的别名anySet()。为了保持代码清洁,通过@SuppressWarnings(“unchecked”)来进行替代编译器警告。

任何非空(non-null)Set.

这个方法不进行给定参数的类型检查,它就是为了避免代码中的强制转换(Casting)。然而这可能会改变(类型检查可以添加)将来的主要版本。

参照Matchers类的javadoc帮助文档中的例子

Parameters:

  • clazz – 类型属于Set为了避免类型强制转换(Casting)

Returns:

  • 空Set.

anyShort

任何short类型或非空(non-null)Short.

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 0.

anyString

任何非空(non-null)String

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • 空String (“”).

anyVararg

任何vararg类型, 即任何参数(arguments)的number和values

例如:

参照Matchers类的javadoc帮助文档中的例子

Returns:

  • null.

argThat

允许创建自定义的参数匹配模式.这个API在2.0中已经改变,请阅读ArgumentMatcher基础指南。

在实现自定义参数匹配模式前,理解使用的场景和non-trivial参数的可用选项是非常重要的。这种方式下,你可以在给定的情况下选择最好的方法来设计制造高质量的测试(清洁和维护).请阅读ArgumentMatcher文档学习方法和例子。

在极少数情况下,当参数是基本数据类型(primitive)时,你必须使用相关的intThat()、floatThat()等方法。这些方法在进行自动拆箱(auto-unboxing)时可以避免NullPointerException异常。

参照ArgumentMatcher类的javadoc帮助文档中的例子

Parameters:

  • matcher – 取决于选择的参数匹配模式(argument matches)

Returns:

  • null.

booleanThat

允许创建自定义的Boolean类型参数匹配模式(Boolean argument matchers).

参照Matchers类的javadoc帮助文档中的例子

Parameters:

  • matcher – 取决于选择的参数匹配模式(argument matches)
    Returns:

  • false.

byteThat

允许创建自定义的Byte类型参数匹配模式(Byte argument matchers)

参照Matchers类的javadoc帮助文档中的例子

Parameters:

  • matcher – 取决于选择的参数匹配模式(argument matches)

Returns:

  • 0.

charThat

允许创建自定义的Character类型参数匹配模式(Character argument matchers)

参照Matchers类的javadoc帮助文档中的例子

Parameters:

  • matcher – 取决于选择的参数匹配模式(argument matches)

Returns:

  • 0.

contains

String参数包含给定的substring字符串.

参照Matchers类的javadoc帮助文档中的例子

Parameters:

  • substring – substring字符串.

Returns:

  • 空String (“”).