特性の val をモックしたいと思います。たとえば、このコードでは、 val をモックしますbaz
。
trait Foo {
def bar(): Int
val baz: Int
}
val fooMock = mock[Foo]
(fooMock.bar _).expects().returning(5)
(fooMock.baz _).expects().returning(6) //doesn't compile
doSomeThing(fooMock)
テストでこれを解決するために、Foo を拡張baz
し、次の方法で実装しました。
trait FooTest extends Foo {
override val baz: Int = 5
}
val fooMock = mock[FooTest]
(fooMock.bar _).expects().returning(6)
doSomeThing(fooMock)
しかし、これは醜いので、scala モックを使用してこれを行うより標準的な方法があることを望んでいました。
この質問への回答を見てきましたが、特性のval
toを変更する必要があり、valdef
を保持したいbaz