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

pes8fvy9  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(139)

我需要模拟一个类,它有一个返回javax. ws. rs. core. Response的方法。这个类在这个方法调用之后有一个.readEntity(String.class)。我按如下方式设置响应:

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

现在当这个Response被使用response.readEntity(String.class)读取时;它会抛出一个错误:

java.lang.非法状态异常:出站消息不支持此方法。

如何在thenReturn中设置Response,以便返回readEntity()方法可读的入站消息。
另外,我不能在主类中进行更改,只能在测试类中进行更改。我使用的是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);
2skhul33

2skhul331#

首先,你必须确定回应是嘲弄:

Response response = Mockito.mock(Response.class)

那么我建议你用这样的方式来嘲笑readEntity

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

相关问题