scala中有一种方法可以使用MockitoSugar
来模拟作为scala单例的object
的方法吗?
答案 0 :(得分:7)
处理单身人士嘲笑的最好办法是首先对单身人士的结构做一点修改。使用特征定义操作,然后使对象扩展特征,如下所示:
trait Fooable{
def doFoo:String = "foo"
}
object Foo extends Fooable
然后,在任何需要Foo
对象的类中,将其声明为输入或可以设置的内容(DI),但将其作为特征进行转换,如下所示:
class MyFooUser(foo:Fooable = Foo){
}
默认情况下它会使用该对象,但在构建测试时,您可以为其设置一个模拟的Fooable
。有很多方法可以处理Fooable
进入你的类(这是一个),而这并不是这个答案的范围。答案实际上是首先使用特征来定义方法,然后让对象扩展该特征,然后将其称为任何需要它的类中的特征。这将允许你有效地模拟它。
答案 1 :(得分:0)
Mockito对object
的帮助不大,但您可以尝试使用ScalaMock。