【发布时间】:2019-11-20 15:43:09
【问题描述】:
我有这样的抽象类:
abstract class A(val x: String, y: String..){
fun <R1,R2>bla(request:R1):Response<R2>(..)
}
我也有扩展抽象的类:
class B(val bean1:Bean1, val bean2: Bean2): A(bean1.x, bean2.y){
fun doSomething(
<R1,R2>bla(Object())
)}
我的测试看起来像:
@Mock
private lateinit var bean1:Bean1
@Mock
private lateinit var bean2:Bean2
private lateinit b:B
@BeforeAll
fun init(){
MockitoAnnotations.initMocks(this)
b = spy(B(bean1,bean2))
}
@Test
fun `Test`(){
doReturn(Response()).when(b).bla<Class1,Class2>(Object())
}
如何在不调用实际实现的情况下测试方法“bla”? 在上述情况下,它每次都调用真正的实现。我尝试使用 mock 代替 spy,但结果相同。
暂停!:)
【问题讨论】:
-
不调用真正的实现就不是在测试方法
标签: unit-testing kotlin mocking mockito spy