外部类的Scala参数捕获
所以我想检查发送给我不控制的外部类的参数。假设外部类已测试,我只想测试我是否向它传递了正确的参数。我尝试了一些ArgumentCaptor等组合,但运气不太好外部类的Scala参数捕获,scala,mockito,Scala,Mockito,所以我想检查发送给我不控制的外部类的参数。假设外部类已测试,我只想测试我是否向它传递了正确的参数。我尝试了一些ArgumentCaptor等组合,但运气不太好 import org.ABC.ExternalClass case class Foo(i:Int, j: Int...) { val EC = CreateExternalClass() def CreateExternalClass(): ExternalClass = { new ExternalClass (i,
import org.ABC.ExternalClass
case class Foo(i:Int, j: Int...) {
val EC = CreateExternalClass()
def CreateExternalClass(): ExternalClass = {
new ExternalClass (i, j, ....many parameters)
}
}
我认为您在这里弄错了:您只能在调用模拟对象时使用ArgumentCaptor。您不能使用它们来“拦截”各种对象之间的任意调用
意思:如果要使用模拟的外部类对象,则只能使用ArgumentCaptor。但这样您就不需要捕获,因为您可能只需要进行方法调用参数验证 但是,当然,您不能在生产类中使用Mockito来模拟对
new
的调用。您可以选择:
- 转向PowerMockito或JMockit;框架,允许模拟对新对象的调用。不推荐李>
- 将生产代码返工为而不是,然后调用new。在这里可能没有帮助;因为这个类可能已经是外部类的包装器了
- 检查创建的对象:检查是否可以使用getter方法简单地查询新创建的对象,以获得希望在其中显示的值