単体テストの際、csv形式の結果を確認したいので、テストに以下のコードを入れています。
MyDtoReq request = new MyDtoReq();
// ... assign some properties
string url = request.ToUrl("GET");
HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(url);
httpReq.Accept = "text/csv";
csv = new StreamReader(httpReq.GetResponse().GetResponseStream()).ReadToEnd();
リクエストが成功した場合、それはうまくいきます。しかし、失敗するとSystem.Net.WebException
、期待される詳細を持たない が発生しWebServiceException.ResponseStatus
ます。NUnit は次のように例外を報告します。
Test Name: TestReq
Test FullName: [...].TestReq
Test Source: c:\Users\[...]\UnitTestProject1\ServiceTests.cs : line 261
Test Outcome: Failed
Test Duration: 0:00:27.104
Result Message: System.Net.WebException : The remote server returned an error: (400) Bad Request.
Result StackTrace: at [...].TestReq() in c:\Users\[...]\UnitTestProject1\ServiceTests.cs:line 287
csv 形式を要求するほとんどのクライアントはResponseStatus
. 実際のエラーを確認するために、ブラウザで format=html を指定してリクエストを再送信しますが、時間の無駄です。