scala - 是否可以使用 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
推荐阅读
- javascript - 反应js。不能'获取未定义的值,用户的显示名称。我已使用道具来使用此文件中的用户状态,但它无法访问任何用户数据
- python - 如何在 MySQL 中复制 pandas 函数?
- python - 如何在 python 中使用正则表达式从字符串中获取某人的姓名?
- r - 如何在字符串中删除初始句点之前的文本、初始句点本身和最后句点之后的文本?
- c - 使用 (*variable).member 与 *variable.member 取消引用结构 Struct_type 的成员
- windows - PyCharm 的两个实例
- css - CSS 性能,#id vs .class vs [^regex$] vs 选择器
- python - 将一列'int'转换为'string'
- spring - Spring MVC - Dispatcher Servlet 找不到任何页面
- c++ - clang:发射是什么意思?