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);
}
}
}
どのようにすることができますresteasyによって期待どおりにストリームによって適切にサポートされる応答を作成しますか?私はかなりの類似の質問を検討しましたが、エンドポイントコールのテストや嘲笑を主眼に置いているようでした。私はちょうど私の解析方法をテストしたい。
モックを実装する方法のコード例については、私の答えを参照してください。 – SteveS