首页 文章

用scala-mock嘲笑一个特征的val

提问于
浏览
1

我想嘲笑一个特质的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

1 回答

相关问题