【发布时间】:2014-11-27 10:34:35
【问题描述】:
我想模拟一个特征的 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 mock。
我已经看到了这个question 的答案,但它需要将特征中的val 更改为def,我想保留baz 一个val
【问题讨论】:
标签: scala unit-testing mocking scalamock