Сегодня я столкнулся с очень сложной проблемой 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 зависимость, но что мне делать с другими сотрудниками?
Я мог бы создать кучу фабричных методов (или заводского класса), чтобы создать соавторов, но я немного боюсь, что я буду слишком насмехаться.
Follow Up
Спасибо за ответы! Мой оставшийся вопрос является метод так:
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
?