【发布时间】:2020-06-01 21:46:12
【问题描述】:
我在 Scala 上下文中面临模拟嵌套函数问题。我找到了这样的答案: How to mock fields of inner singleton objects? 有效但不简洁。我想知道在 Scala 社区中是否有类似 mockito 的 deepstub 之类的东西?
【问题讨论】:
标签: scala unit-testing mocking mockito
我在 Scala 上下文中面临模拟嵌套函数问题。我找到了这样的答案: How to mock fields of inner singleton objects? 有效但不简洁。我想知道在 Scala 社区中是否有类似 mockito 的 deepstub 之类的东西?
【问题讨论】:
标签: scala unit-testing mocking mockito
您可以从mockito-scala 使用ReturnsDeepStubs。这是一个工作示例
import org.mockito.stubbing.ReturnsDeepStubs
import org.mockito.{ArgumentMatchersSugar, IdiomaticMockito}
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
trait Bar {
def zar: Int
}
trait Foo {
def bar: Bar
}
class MockitoScalaDeepStubExampleSpec extends AnyFlatSpec with Matchers with IdiomaticMockito with ArgumentMatchersSugar {
"mockito-scala" should "provide deep stubs" in {
val foo = mock[Foo](ReturnsDeepStubs)
foo.bar.zar returns 42
foo.bar.zar should be (42)
}
}
【讨论】: