使用 PowerMock 在 Scala 中模拟对象

Vic*_*Cui 6 unit-testing scala powermock powermockito

我正在尝试对我的一种方法进行单元测试。在这个方法里面有一行:

val dynamicFrame = DynamicFrame(dataFrame, glueContext)
Run Code Online (Sandbox Code Playgroud)

问题是这DynamicFrame是一个对象:

object DynamicFrame {
   ... methods()
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 PowerMock 来模拟对DynamicFrame(dataFrame, glueContext). 我知道 PowerMock 可以模拟classes,但是我如何模拟一个对象?我在这里这里看到过类似的问题,但似乎并不简单。

在我试过的测试代码中

PowerMockito.whenNew(classOf[DynamicFrame])
  .withAnyArguments().thenReturn(mockDynamicFrame)
Run Code Online (Sandbox Code Playgroud)

但我NullPointerExceptionDynamicFrame创建的地方得到了一个。我的猜测是因为我使用了模拟类的语法,但它DynamicFrame是一个对象。

PowerMock(来自 Mockito)是否支持此功能?如果不是,我将如何使我的测试成功?