捕获并评估参数约束" * _"

时间:2016-03-05 11:41:07

标签: mocking spock

Spock有这个很好的语法来检查是否调用了具有特定名称的方法,忽略了参数的数量:

1 * subscriber.receive(*_) // any argument list (including the empty argument list)

是否可以捕获Object[]数组中的参数列表并对其进行断言?

这样的事情:

1 * subscriber.receive(*args)
args.size() < 2 || args.size() > 5

1 个答案:

答案 0 :(得分:1)

您可以使用此语法将参数检查为数组:

1 * subscriber.receive(*_) >> { assert it.size() < 1 || it.size() > 5 }

当使用交互闭包时,当使用无类型参数调用它时,此参数将所有参数作为数组。