6

scalamock のドキュメントでは、次のように述べられています。

クラス、トレイト、ケースクラスのモック

サポートされている機能の 1 つです。

私は次のケースクラスを持っています:

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]
                   ^

そのためのインターフェースを実装できることはわかっていますが、いずれにせよ、これはケースクラス/コンストラクターを持つクラスをモックする方法をよりよく理解するのに役立ちます。

どうもありがとう、

マータリ

4

1 に答える 1

16

現在、デフォルトのコンストラクターが定義されていないクラスをモックすることはできません。

デフォルトのコンストラクターが定義されたサブクラスを作成し、そのサブクラスをモックすることで回避できます。

class MockableThing extends Thing(null)
val item = mock[MockableThing]
于 2015-06-15T19:44:47.320 に答える