【问题标题】:How can I mock HttpResponse, an interface, with RETURNS_DEEP_STUBS如何使用 RETURNS_DEEP_STUBS 模拟接口 HttpResponse
【发布时间】:2019-05-20 13:27:44
【问题描述】:

我想在调用这些函数时返回 200:

`when`(httpResponse.statusLine.statusCode).thenReturn(200)

httpResponse 是由

创建的模拟
val httpResponse = mock(HttpResponse::class.java, RETURNS_DEEP_STUBS)

我的问题是当我使用RETURNS_DEEP_STUBShttpResponse 为空。我猜这是因为 HttpResponse 是一个接口(?)。

如果我跳过RETURNS_DEEP_STUBS,我无法在第一个statusLine 之后调用任何函数

可以模拟这样的界面吗?如果有怎么办?

【问题讨论】:

    标签: kotlin interface mocking mockito httpresponse


    【解决方案1】:

    只需创建另一个模拟:

    val httpResponseStub = mock(HttpResponse::class.java);
    val statusLineStub= mock(StatusLine::class.java);
    
    when(statusLineStub.statusCode).thenReturn(200);
    when(httpResponseStub.statusLine).thenReturn(statusLineStub);
    

    一步一步来。

    【讨论】:

      猜你喜欢
      • 2014-03-11
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多