在我的代码中,有:
def submitContent(getDocContent: () => String, callback: Try[Boolean] => Unit): Unit = {
// ....
callback(Failure(new InflightChangeTimeoutException(pendingChange)))
}
我想在某些情况下进行测试,callback
将使用某些Failure
的{{1}}进行调用,但我并不关心异常的值是什么。
在我的speces2测试中,我尝试过:
InflightChangeTimeoutException
会给我一些错误:
val callback = mock[Try[Boolean] => Unit]
submitContent(() => "any-other", callback)
there was one(callback).apply(===(Failure(any[InflightChangeTimeoutException])))
不确定哪里出错了。如何解决?
答案 0 :(得分:1)
any[A]
是一个函数,它将参数的匹配器注册到模拟函数作为副作用。但any[A]
的返回值实际上是null
。
因此,检查回调结果的正确方法是:
there was one(callback).apply(beLike[Failure[Boolean]] { case Failure(t) =>
t must beAnInstanceOf[InflightChangeTimeoutException]
})