今日、私は非常に困難なTDD問題に遭遇しました。私はHTTP POSTを介してサーバーと対話する必要があります。私はApache Commons HttpClientを見つけました。これは私が必要とするものです。複数の共同作業者によるユニットテスト
はしかし、私は、Apache Commonsのからオブジェクトを共同での束で終わる:
public void postMessage(String url, String message) throws Exception {
PostMethod post = new PostMethod(url);
RequestEntity entity = new StringRequestEntity(message,
"text/xml; charset=ISO-8859-1");
post.setRequestEntity(entity);
HttpClient httpclient = new HttpClient();
try {
int result = httpclient.executeMethod(post);
System.out.println("Response status code: " + result);
System.out.println("Response body: ");
System.out.println(post.getResponseBodyAsString());
} finally {
post.releaseConnection();
}
}
私はPostMethod
オブジェクト、RequestEntity
オブジェクトとHttpClient
オブジェクトを持っています。私はHttpClient
alaの依存関係注入を比較的快適に過ごしていますが、他の協力者については何をしますか?
私は、共同作業者を作成するためのファクトリメソッド(またはファクトリクラス)の束を作成することができますが、私はあまりにも多くを嘲笑することに少し気になります。
フォローアップ
ありがとうございました!
public String postMessage(String url, String message) throws Exception {
PostMethod post = new PostMethod(url);
RequestEntity entity = new StringRequestEntity(message,
"text/xml; charset=ISO-8859-1");
post.setRequestEntity(entity);
HttpClient httpclient = new HttpClient();
httpclient.executeMethod(post);
return post.getResponseBodyAsString();
}
どのように私が正しく返された値がpost.getResponseBodyAsString()
からのものであることを確認します:私の残りの問題は、このような方法がありますか?私はpost
とclient
と嘲笑しなければならないでしょうか?