首页 > 解决方案 > 使用 PowerMock 在 Scala 中模拟对象

问题描述

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

val dynamicFrame = DynamicFrame(dataFrame, glueContext)

问题是这DynamicFrame是一个对象:

object DynamicFrame {
   ... methods()
}

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

在我尝试过的测试代码中

PowerMockito.whenNew(classOf[DynamicFrame])
  .withAnyArguments().thenReturn(mockDynamicFrame)

但我得到了一个NullPointerException在线DynamicFrame创建的位置。我的猜测是,这是因为我使用了模拟类的语法,但DynamicFrame它是一个对象。

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

标签: scalaunit-testingpowermockpowermockito

解决方案


推荐阅读