我的应用中有一些方法可以发出http请求。有没有一种很好的方法可以模拟单元测试的网络故障和不良响应?
答案 0 :(得分:12)
合适的Mock Objects应该让您轻松进行此类模拟;如果你不熟悉这个概念,那么这里有一个很好的tutorial。
答案 1 :(得分:1)
对于网络故障,没有什么比首先拔掉你的计算机以太网电缆(或d / c无线),然后拔掉任何可以访问云端的电缆。
如果您的错误响应意味着HTTP错误,您可以编写ASP脚本,这些脚本始终会抛出特定错误。如果要测试格式错误的HTTP数据包,则必须编写一个简单的套接字应用程序来执行此操作。
答案 2 :(得分:1)
答案 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()函数可访问的值。这样,您可以以编程方式更改该调用的结果。