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