微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以使用 ScalaMock 模拟/存根同一测试类的方法?

如何解决是否可以使用 ScalaMock 模拟/存根同一测试类的方法?

对于 Mockito 和其他测试框架,通常有多种方法可以模拟测试类中方法功能。我似乎无法让 ScalaMock 以同样的方式接受。

class A {
 def methodUndertest()
 def methodUsedInMethodUndertest()
}

然后在测试课上我:

(A.methodUsedInMethodUnderTest _)
.expects.....
a.methodUnderTest shouldEqual ..

我知道,如果您模拟/删除类,然后在真实实例上调用相同的功能,这将不起作用。但是可以通过对两个调用等使用模拟来解决

如果这是错误方法,那么测试在同一测试类中使用其他方法方法的最佳方法是什么?我认为将方法解耦是最佳实践。

谢谢!

解决方法

如果我正确理解您的问题,您可以创建 A 的模拟,然后告诉 ScalaMock 执行 methodUnderTest 的实际实现。

val aMock = mock[A]

when(aMock.methodUnderTest).thenCallRealMethod()
when(aMock.methodUsedInMethodUnderTest).thenReturn(someValue)

aMock.methodUnderTest shouldEqual someOtherValue

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。