【发布时间】:2012-09-10 13:13:27
【问题描述】:
我创建了一个程序来调用数千个 url,我想做的是确保如果 url 超时,我可以将超时错误追溯到 url。我所拥有的是:
string url = "http://www.google.com";
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(url);
request.Timeout = 5000;
request.ReadWriteTimeout = 5000;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1";
//From Fiddler
DateTime giveUp = DateTime.UtcNow.AddSeconds(5);
if (DateTime.UtcNow > giveUp)
throw new TimeoutException("The following url could not be reached: " + url);
我想制作一个单元来测试超时异常是否正常工作。如果您需要更多详细信息,请告诉我,但这应该足够了。
【问题讨论】:
-
或许你可以使用 Thread.Sleep(5000);
-
你用的是什么框架?在 MSTest 中有一些方法可以限制测试运行的超时时间。
-
我在 .NET 框架中使用 NUnit。我确实发现有一个断言 TimeoutException 可以用于单元测试。
标签: c# unit-testing http