我想 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)

有没有办法做到这一点?

最佳答案

您必须模拟dep1: D1,以便一切正常。这不是模拟“一半”或仅某些方法的好方法。

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

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

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

10-13 00:30