scala 如何在org.asynchttpclient.Response中 Package org.json4s.JValue

pdkcd3nj  于 2022-11-09  发布在  Scala
关注(0)|答案(1)|浏览(176)

我正在重构一些测试,在此之前,响应被解析为org.json4s.JValue
我希望将响应作为org.asynchttpclient.Response类型作为输入参数进行传递。以区分HTTP代码状态。
NettyResponseWebDavResponseorg.asynchttpclient.Response的实现。
如何将org.json4s.JValue包裹到org.asynchttpclient.Response的体内?

70gysomp

70gysomp1#

无法设置示例数据时的关键解决方案。模拟它们
这里,我用的是Mockito。添加依赖项

<dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>x.x.x</version>
      <scope>test</scope>
    </dependency>

在Scala中

import org.junit.Test
import org.mockito.Mockito
import org.mockito.Mockito.when

  @Test
  def GivenXThenAssert(): Unit = {

    val jsonStringResponse: String = ""
    // instantiate the class Response
    val httpResponse = Mockito.mock(classOf[org.asynchttpclient.Response])
    // stub the implementation method
    when(httpResponse.getResponseBodyAsStream()).thenReturn(new ByteArrayInputStream(jsonStringResponse.getBytes(StandardCharsets.UTF_8)))

    // THEN
    //
    val processedResponse = process(httpResponse)
    assertEquals(....)
    }

请注意,我截断了方法getResponseBodyAsStream。为什么不再来一次呢?因为Assert函数process调用了前面的方法。

相关问题