【问题标题】:Test generic method of parent abstract class测试父抽象类的泛型方法
【发布时间】: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


【解决方案1】:

我通过使用接口而不是抽象类解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 2019-10-10
    相关资源
    最近更新 更多