我想要嘲笑以下特征:
val mockTraitA = mock[TraitA]
使用ScalaMock时,我尝试
java.lang.NullPointerException
它以{{1}}失败,因为由于私有懒惰的存在而无法正确初始化此特征的模拟版本?
初始化这种特质的正确方法是什么?
答案 0 :(得分:1)
对于mockTraitA
,当特征的构造函数运行时,将执行行internalObject.setSomeVal...
。不幸的是,没有办法阻止这种情况。
如果可以,请尝试重构:
private lazy val internalObject = {
val t = new ServiceA
t.setSomeVal("someVal")
t.setSomeOtherval("someOtherVal")
t
}