如何使用MockitoSugar来模拟对象(单例)方法?

Jas*_*Jas 0 scala mockito scalatest

scala中是否有一种方法可以MockitoSugar用来模拟object一个scala单例的方法?

cmb*_*ter 7

处理单身人士进行嘲弄的最佳选择是首先对单身人士的结构进行一些修改.使用特征定义操作,然后让对象扩展特征,如下所示:

trait Fooable{
  def doFoo:String = "foo"
}

object Foo extends Fooable
Run Code Online (Sandbox Code Playgroud)

然后,在任何需要该Foo对象的类中,将其声明为输入或可以设置的内容(DI),但将其作为特征进行decala而不是这样:

class MyFooUser(foo:Fooable = Foo){

}
Run Code Online (Sandbox Code Playgroud)

这种方式默认情况下它使用对象,但是在构建测试时,你可以给它一个模拟Fooable.有很多方法可以处理Fooable进入你的类(这是一个),而且这个方法并没有真正适用于这个答案.答案实际上是首先使用特征来定义方法,然后让对象扩展该特征,然后将其称为任何需要它的类中的特征.这将允许您有效地模拟它.