Scala 模拟部分 stub

标签 scala unit-testing scalamock

我想 stub 具有依赖项的 Scala 类的方法之一。有没有办法使用 ScalaMock 实现这一目标?

这是我所拥有的一个简化示例:

class TeamService(val dep1: D1) {

  def method1(param: Int) = param * dep1.magicNumber()

  def method2(param: Int) = {
    method1(param) * 2
  }
}

在这个例子中,我想模拟 method1() .我的测试看起来像:
val teamService = ??? // creates a stub
(teamService.method1 _).when(33).returns(22)
teamService.method2(33).should be(44)

有没有办法实现这一目标?

最佳答案

你必须 mock dep1: D1 ,所以一切都会好起来的。这不是模拟“一半”或仅模拟某些方法的好方法。

mock dep1: D1是测试它的正确方法。

val mockD1 = mock[D1]
val teamService = new TeamService(mockD1)
(mockD1.magicNumber _).returns(22)
teamService.method2(33).should be(44)

关于Scala 模拟部分 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35016689/

相关文章:

java - 如何检查哪个线程在握住监视器?

scala - 是否可以在 Scala 中为字符串插值指定类型参数

algorithm - 我的 Gauss-Jordan 消元法有什么问题?

unit-testing - 如何扁平化IO(IO())?

java - 使用 JMockIt 模拟简单的属性访问

scala - 用 scala-mock 模拟一个特征的 val

mongodb - 如何使用 spark 和 mongo Hadoop 连接器更新 mongo 集合中的多个字段?

java - (j)单元测试断言和错误消息?

ScalaMock 模拟一个特征给出 "MockFunction1 cannot be cast to StubFunction1"

scala - Scalamock无法区分 future