测试发出http请求的方法

时间:2009-06-15 18:39:58

标签: java unit-testing http

我的应用中有一些方法可以发出http请求。有没有一种很好的方法可以模拟单元测试的网络故障和不良响应?

7 个答案:

答案 0 :(得分:12)

合适的Mock Objects应该让您轻松进行此类模拟;如果你不熟悉这个概念,那么这里有一个很好的tutorial

答案 1 :(得分:1)

对于网络故障,没有什么比首先拔掉你的计算机以太网电缆(或d / c无线),然后拔掉任何可以访问云端的电缆。

如果您的错误响应意味着HTTP错误,您可以编写ASP脚本,这些脚本始终会抛出特定错误。如果要测试格式错误的HTTP数据包,则必须编写一个简单的套接字应用程序来执行此操作。

答案 2 :(得分:1)

您是否尝试过HTTPUnitJWebUnit

答案 3 :(得分:1)

在接口后面包装发出HTTP调用的库(例如java.net.URLConnection或Commons HttpClient),然后编写模拟失败条件的接口的实现或模拟。

您的界面只能代表您的应用程序需要执行的操作,而不是整个HTTP客户端功能。

答案 4 :(得分:1)

也许Spring test mocks会有所帮助。

答案 5 :(得分:0)

在发出请求时拉出局域网线或关闭无线路由器:)

答案 6 :(得分:-1)

我们在这种情况下做的是抽象正在进行调用的层。不要让你的逻辑直接发出http请求,而是让你的代码调用一个函数。在该函数中可以是:

if (in_test) {
   response = get_test_response();
} else {
   response = make_http_request();
}

然后,您可以让您的单元测试设置get_test_response()函数可访问的值。这样,您可以以编程方式更改该调用的结果。