繁体   English   中英

Mockito 模拟 Response 类并使用 readEntity 方法读取

[英]Mockito mocking a Response class and reading with readEntity method

我需要模拟一个具有返回 javax.ws.rs.core.Response 的方法的类。 该类在此方法调用之后使用 .readEntity(String.class)。 我将响应设置如下:

when(methodCall).thenReturn(Response.status(Response.Status.OK).entity(someEntity).build());

现在,当使用 response.readEntity(String.class); 读取此响应时; 它抛出一个错误:

java.lang.IllegalStateException :出站消息不支持方法。

如何在 thenReturn 中设置响应,以便返回 readEntity() 方法可读的入站消息。

PS我不能在主类中进行更改,只能在测试类中进行更改。 我使用 java 1.8 和 junit 4.12 和 mockito-all 1.9.5,mockito-inline 3.8.0

我正在嘲笑的班级:

Response response = client.target().request().header().post();
String entity = response.readEntity(String.class);

首先,您必须确保响应是模拟的:

Response response = Mockito.mock(Response.class)

那我建议你用这种方式模拟readEntity

Mockito.doReturn(Response.status(Response.Status.OK).entity(someEntity).build())
       .when(response)
       .readEntity(String.class);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM