Spock有这个很好的语法来检查是否调用了具有特定名称的方法,忽略了参数的数量:
1 * subscriber.receive(*_) // any argument list (including the empty argument list)
是否可以捕获Object[]
数组中的参数列表并对其进行断言?
这样的事情:
1 * subscriber.receive(*args)
args.size() < 2 || args.size() > 5
答案 0 :(得分:1)
您可以使用此语法将参数检查为数组:
1 * subscriber.receive(*_) >> { assert it.size() < 1 || it.size() > 5 }
当使用交互闭包时,当使用无类型参数调用它时,此参数将所有参数作为数组。