Я бы хотел поиздеваться над достоинством черты характера. например, в этом коде, чтобы издеваться над 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 mock.
Я видел ответ на этот вопрос, но он требует изменения от val
до def
в трейте, и я хотел бы оставить baz
значение