发出http请求的测试方法

我的应用程序中有一些方法可以发出http请求。 有没有一种很好的方法来模拟网络故障和unit testing的错误响应?

合适的模拟对象应该让你轻松地进行这样的模拟; 如果你不熟悉这个概念,那里有一个很好的教程 。

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

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

你试过HTTPUnit和JWebUnit吗?

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

您的界面可以只表示应用程序需要执行的操作,而不是整个HTTP客户端function。

也许Spring测试模拟会有所帮助。

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

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

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

然后,您可以通过get_test_response()函数为unit testing设置一些值。 这样,您可以以编程方式更改该调用的结果。