,所以我想检查我发送到无法控制的外部类的参数。假定外部类测试,我只想测试是否将其传递给正确的参数。我尝试了一些参数captor等的组合,但运气不多
import org.ABC.ExternalClass
case class Foo(i:Int, j: Int...) {
val EC = CreateExternalClass()
def CreateExternalClass(): ExternalClass = {
new ExternalClass (i, j, ....many parameters)
}
}
我认为您在这里遇到了错误:您只能在调用 oppered 对象的呼叫上使用参数。您不能使用它们在各种对象之间"拦截"任意调用。
含义:只有在使用模拟 externalClass对象的情况下,才可以使用参数captor。但是,您就不需要捕获,因为您可能可以做简单的方法调用参数验证。
但是,当然,您不能使用Mockito在生产课中嘲笑对new
的呼叫。您拥有的选项:
- 转向PowerMockito或Jmockit;允许嘲笑新呼叫的框架。不建议。
- 将您的生产代码重新处理为不是做到了新的。这里可能没有帮助;因为这个课程可能已经是围绕该外部类的包装器
- 去检查创建的对象:检查是否可以使用getter方法来简单地查询新创建的对象以具有期望在内部显示的值