Scala对象(非类)的单元测试

Scala对象(非类)的单元测试,scala,unit-testing,mockito,powermock,powermockito,Scala,Unit Testing,Mockito,Powermock,Powermockito,我在Scala中有一个声明为“对象”的单例类。我需要编写单元测试来模拟这个对象中的方法。我该怎么做?我试过使用“PowerMockRunner”等,但没有成功 例如: object MyClass extends Serializable { def apply(): Unit = { ..... } def more methods.... } 现在我需要编写一个模拟“apply”方法的单元测试。我该怎么做呢?简单的答案是——你不应该对单例进行单元测试 龙在这里 您可以将功能提取

我在Scala中有一个声明为“对象”的单例类。我需要编写单元测试来模拟这个对象中的方法。我该怎么做?我试过使用“PowerMockRunner”等,但没有成功

例如:

object MyClass extends Serializable {
   def apply(): Unit = { ..... }
   def more methods....
}

现在我需要编写一个模拟“apply”方法的单元测试。我该怎么做呢?

简单的答案是——你不应该对单例进行单元测试

龙在这里

您可以将功能提取到特征并对特征进行单元测试

不确定为什么需要
扩展可序列化的
,但留下它只是为了说明我的意思

  object MyClass extends Serializable with TheFunctionality {
  // whatever you need here
  }

  trait TheFunctionality {
    def apply(): Unit = ???
  }

它们也可以有相同的名称<代码>特征Foo;对象Foo扩展Foo
请签出。注意-虽然我在看这段视频的前2-3次时没有理解它,但我从中了解到了简单地将参数传递给函数(以实现DI)的价值。您不需要使用一些
mockito
技巧来模拟此方法。