在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]
^
我知道我可以为它实现一个接口,但无论如何,这将有助于我更好地理解如何模拟具有构造函数的案例类/类。
目前,不能模拟未定义默认构造函数的类。
您可以通过创建一个定义了默认构造函数的子类并模拟该子类来解决此问题:
class MockableThing extends Thing(null)
val item = mock[MockableThing]