【问题标题】:How to mock a class with scala mock如何用 scala mock 模拟一个类
【发布时间】:2018-07-07 04:08:53
【问题描述】:

scalamock的文档中说:

模拟类、特征和案例类

是支持的功能之一。

我有以下案例类:

case class Thing(private val item: Item)

当我这样做时:

val item = mock[Thing]

我收到以下错误:

Error:(18, 24) not enough arguments for constructor Thing:
 (item: org.dspace.content.Item)org.iadb.poolpartyconnector.dspaceutils.Thing.
Unspecified value parameter item.
    val item = mock[Thing]
                   ^

我知道我可以为它实现一个接口,但无论如何,这将帮助我更好地理解如何模拟一个案例类/具有构造函数的类。

非常感谢,

马塔里

【问题讨论】:

标签: scalamock


【解决方案1】:

目前,您无法模拟没有定义默认构造函数的类。

您可以通过创建一个定义了默认构造函数的子类并模拟该子类来解决此问题:

class MockableThing extends Thing(null)
val item = mock[MockableThing]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多