我有这样的抽象类:
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'? 在上述情况下,每次都会调用真正的实现。我尝试使用模拟代替间谍,但结果相同。
Halp!:)
答案 0 :(得分:0)
我通过使用接口而不是抽象类解决了这个问题。