是否可以使用 ScalaMock 模拟/存根相同测试 class 的方法?
Is it possible to mock / stub methods of the same test class with ScalaMock?
对于 Mockito 和其他测试框架,通常有一些方法可以在测试中模拟方法的功能 class。我似乎无法让 ScalaMock 以同样的方式接受。
class A {
def methodUnderTest()
def methodUsedInMethodUnderTest()
}
然后在测试中class我是:
(A.methodUsedInMethodUnderTest _)
.expects.....
a.methodUnderTest shouldEqual ..
我知道,如果您模拟/删除 class 然后在真实实例上调用相同的功能,这将不起作用。但是有一些解决方法,可以通过对两个调用等使用模拟
如果这是错误的方法,那么在同一测试中测试使用其他方法的方法的最佳方法是什么 class?我认为解耦这些方法是最好的做法。
谢谢!
如果我没有正确理解你的问题,你可以创建一个 A
的模拟,然后告诉 ScalaMock 执行 methodUnderTest
.
的真正实现
val aMock = mock[A]
when(aMock.methodUnderTest).thenCallRealMethod()
when(aMock.methodUsedInMethodUnderTest).thenReturn(someValue)
aMock.methodUnderTest shouldEqual someOtherValue
对于 Mockito 和其他测试框架,通常有一些方法可以在测试中模拟方法的功能 class。我似乎无法让 ScalaMock 以同样的方式接受。
class A {
def methodUnderTest()
def methodUsedInMethodUnderTest()
}
然后在测试中class我是:
(A.methodUsedInMethodUnderTest _)
.expects.....
a.methodUnderTest shouldEqual ..
我知道,如果您模拟/删除 class 然后在真实实例上调用相同的功能,这将不起作用。但是有一些解决方法,可以通过对两个调用等使用模拟
如果这是错误的方法,那么在同一测试中测试使用其他方法的方法的最佳方法是什么 class?我认为解耦这些方法是最好的做法。
谢谢!
如果我没有正确理解你的问题,你可以创建一个 A
的模拟,然后告诉 ScalaMock 执行 methodUnderTest
.
val aMock = mock[A]
when(aMock.methodUnderTest).thenCallRealMethod()
when(aMock.methodUsedInMethodUnderTest).thenReturn(someValue)
aMock.methodUnderTest shouldEqual someOtherValue