我已经使用TickSpec(C#Specflow的F#版本)编写测试来测试Web服务。当我运行测试时,我希望响应带来200 OK,一切都很好。当我故意发送不正确的请求时,我收到400 Bad Request,但是测试失败了,尽管400是我想要的。所以问题是 - 如何捕获异常并继续使用F#?
这是我的代码片段:
let sendRequest(requestBody : HttpRequestBody) =
let response = Http.Request(url, headers = requestHeaders, body = requestBody)
let responseStatusCode = response.StatusCode
let extractedResponseData =
// code here to extract data from response
(responseStatusCode, extractedResponseData)
我得到的错误是
System.Net.WebException : The remote server returned an error: (400) Bad Request.
我希望在
周围尝试捕获(在F#中尝试?) let response = Http.Request(url, headers = requestHeaders, body = requestBody)
可以解决问题。
我可以这样做吗?我该怎么做?
答案 0 :(得分:2)
添加:
silentHttpErrors = true
为:
let response
如:
let response = Http.Request(url, headers = requestHeaders, body = requestBody, silentHttpErrors = true)
排序问题。现在测试忽略了System.Net.WebException,我可以测试应用程序与400错误请求相关的行为。