枚举

enum Exhaustiveness

public enum Exhaustiveness {
    Exhaustive | Partial
}

功能:此枚举类型用于指定 unordered 函数的验证模式,包含两种模式。 Exhaustive 模式要求对于验证范围内的所有桩签名,均需在验证动作中定义。 Partial 模式的要求较松,可以忽略“桩签名”在验证范围内未被验证动作定义的执行行为。

举例来说:

for (i in 0..6) {
    foo.bar(i % 3)
}

// 此处验证动作将抛出异常,因为 foo.bar()在验证范围内一共执行了 6 次,而此处的验证动作仅指定了 4 次执行行为。
Verify.unordered(
    @Called(foo.bar(1)).times(2),
    @Called(foo.bar(2)).times(2)
)

// 此处验证动作可以成功,指定了 Partial 模式后,2 次未在验证动作中定义的执行行为将被忽略。
Verify.unordered(Partial,
    @Called(foo.bar(1)).times(2),
    @Called(foo.bar(2)).times(2)
)

Exhaustive

Exhaustive

功能:要求在验证范围内的每一次“桩签名”的调用均需在验证动作中被定义。

Partial

Partial

功能:允许验证范围内存在未在验证动作中被定义的“桩签名”的调用行为。