对于Mockito和其他测试框架,通常有一些方法可以模拟测试类中方法的功能。我似乎无法让ScalaMock接受同样的方式。
class A {
def methodUnderTest()
def methodUsedInMethodUnderTest()
}
然后在测试课上,我是:
(A.methodUsedInMethodUnderTest _)
.expects.....
a.methodUnderTest shouldEqual ..
我知道,如果你嘲笑/剔除类,然后在一个真实的实例上调用相同的功能,这是行不通的。但也有一些变通办法,通过对两个调用等使用mock。
如果这是错误的方法,那么测试在同一测试类中使用其他方法的方法的最佳方法是什么?我认为将这些方法脱钩是最好的做法。
谢谢!
如果我正确理解您的问题,您可以创建A
的mock,然后告诉ScalaMock执行methodUnderTest
的实际实现。
val aMock = mock[A]
when(aMock.methodUnderTest).thenCallRealMethod()
when(aMock.methodUsedInMethodUnderTest).thenReturn(someValue)
aMock.methodUnderTest shouldEqual someOtherValue