我想使用JUnit4測試一個實用方法,它將javax.ws.rs.core.Response作爲輸入參數。該方法查看Response屬性並根據響應代碼採取一些操作。當我剛剛建立在我的測試方法的響應,並使用提交:如何在JUint中創建javax.ws.rs.core.Response?
Response resp = Response.status(Status.INTERNAL_SERVER_ERROR).entity(respMessage).build();
ResponseParser.parseResponse(resp);
我的實用方法拋出:
java.lang.IllegalStateException: RESTEASY003290: Entity is not backed by an input stream
at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:231)
at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:218)
我的Util類基本上是:
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status.Family;
public class ResponseParser {
public static void parseResponse(Response response) {
String errorResp = "";
if (!response.getStatusInfo().getFamily().equals(Family.SUCCESSFUL)) {
int errorCode = response.getStatus();
errorResp = response.readEntity(String.class);
}
}
}
我怎樣才能創建一個響應,如預期的那樣,將被流正確支持?我看了很多類似的問題,但他們似乎主要集中在測試或模擬端點呼叫。我只想測試我的解析方法。
查看我的答案,下面是我如何實現模擬的代碼示例。 – SteveS