我正在重构以前将响应解析为org.json4s.JValue的一些测试
我希望将响应作为输入参数传递为org.asynchttpclient.Response类型。以区分HTTP代码状态。
NettyResponse和WebDavResponse是org.asynchttpclient.Response的实现。
如何将org.json4s.JValue封装到org.asynchttpclient.Response的主体中?
发布于 2022-09-26 19:36:17
无法设置实例数据时的关键解决方案。Mock他们。
在这里,我用莫基托。添加依赖项
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>x.x.x</version>
<scope>test</scope>
</dependency>在斯卡拉
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方法。为什么不再来一次?因为断言了函数,所以process调用了前面的方法。
https://stackoverflow.com/questions/73814024
复制相似问题