在单元测试中使用HttpClient后如何正确清理

奥伯

在使用Apache HttpClient触发请求的单元测试中,我看到了以下设置和清除代码:

private HttpClient httpClient;
private HttpRequestBase httpRequest;


@Before
public void setUp() throws Exception {
    httpClient = new DefaultHttpClient();
}

@After
public void closeRequests() {
    if (httpRequest != null) {
        httpRequest.releaseConnection();
        httpRequest = null;
    }
}

测试例如发送获取请求并检查响应:

@Test
public void getSomething() throws Exception {
    httpGet = new HttpGet("http://some/url");
    HttpResponse response = httpclient.execute(httpGet);
    assertThat(response.getStatusLine().getStatusCode(), is(HttpStatus.SC_OK));
}

现在我的问题是:这些测试在自己之后是否可以正确清理?据我了解,该releaseConnection()呼叫仅将连接移交给客户端的连接管理器,但实际上并未关闭。

所以测试不应该这样做:

@After
public void closeConnections() {
    httpClient.getConnectionManager().shutdown();
}

而且即使不在http请求实例上调用releaseConnection(),这是否也能正确关闭所有连接?

ok2c

是的你应该。在集成测试中,关闭连接管理器(或使用HC 4.3及更高版本关闭客户端)是正确的选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在单元测试中使用HttpClient后如何正确清理

来自分类Dev

在单元测试中,如何在HttpClient中使用FakeItEasy?

来自分类Dev

如何使用jUnit正确编写Groovy单元测试?

来自分类Dev

如何在单元测试中正确使用IoC?

来自分类Dev

如何正确使用内存传输进行单元测试

来自分类Dev

如何在单元测试中正确使用IoC?

来自分类Dev

如何正确使用大量依赖项进行单元测试

来自分类Dev

在Visual Studio 2013中使用HttpClient进行单元测试/集成测试Web API

来自分类Dev

在Visual Studio 2013中使用HttpClient进行单元测试/集成测试Web API

来自分类Dev

如何在单元测试中使用moq对象?

来自分类Dev

如何在单元测试中使用熊猫数据框

来自分类Dev

如何在仪器化的单元测试中使用文件

来自分类Dev

如何在Chai的单元测试中使用localStorage

来自分类Dev

如何在单元测试中使用Redis?

来自分类Dev

如何在单元测试中使用全局变量?

来自分类Dev

如何在Grails单元测试中使用VndErrorJsonRenderer

来自分类Dev

如何在单元测试中使用断言?

来自分类Dev

如何在单元测试中使用Redis?

来自分类Dev

如何在Ember单元测试中使用库?

来自分类Dev

如何在Python中使用Mockito编写单元测试

来自分类Dev

如何在仪器化的单元测试中使用文件

来自分类Dev

如何正确进行单元测试

来自分类Dev

使用PostSharp进行正确的单元测试

来自分类Dev

在VS 2013中使用HttpClient代理类对Web API进行单元测试

来自分类Dev

在单元测试中使用哪种货币?

来自分类Dev

在Angular单元测试中使用Modernizr

来自分类Dev

在单元测试中使用AudioContext

来自分类Dev

在单元测试中使用Pyodbc

来自分类Dev

在Boost单元测试中使用管道

Related 相关文章

热门标签

归档