2

今日、私は非常に難しいTDD問題に遭遇しました。HTTPPOSTを介してサーバーと対話する必要があります。必要なことを実行するApacheCommonsHttpClientを見つけました。

しかし、私はApacheCommonsからのコラボレーションオブジェクトの束になってしまいます。

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ます。ala依存性注入を渡すのは比較的快適HttpClientですが、他の共同作業者についてはどうすればよいですか?

たくさんのファクトリメソッド(またはファクトリクラス)を作成してコラボレーターを作成することもできますが、あまりにも嘲笑しすぎるのではないかと少し心配しています。

ファローアップ

答えてくれてありがとう!私の残りの問題は次のような方法です:

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ますか?

4

2 に答える 2