有没有办法匹配Specs中Mockito模拟对象的按名称调用参数?

Wil*_*ger 7 specs scala

我正在测试一个对象与另一个对象之间的交互,其中一些方法具有按名称调用的参数.但是,我无法弄清楚如何为该call-by-name参数创建一个参数匹配器.

让我们说这是模拟对象的签名:

def fn(arg1: => String, arg2: Int): Any

那么我真正想做的是测试是否使用已知的第二个参数调用该方法.我甚至不关心第一个论点,但是有办法正确地测试它也是一个奖励.

这不起作用:

there was one(mock) fn(any[()=>String], eq(12))

也不是这样

there was one(mock) fn(any[Function0[String]], eq(12))

这甚至没有编译:

there was one(mock) fn(any[=>String], eq(12)) ......显然是可以预期的.

Eri*_*ric 2

我刚刚在 specs2 中添加了对byname argument 和functions/partial function argument 的一些支持。请尝试最新的规范2-1.9-SNAPSHOT,如果这不适合您,请在 GitHub 上创建问题。