0
我正在尝试为抛出异常的异步方法编写单元测试。使用Touch.Unit(NunitLite)测试异步方法中的异常
这是我的单元测试。我期待WebException。由于WebException不会立即返回,因此测试失败。测试运行者退出时出现未处理的异常。
有没有什么方法在Touch.Unit异步方法中测试异常?
[Test]
[ExpectedException(typeof(WebException))]
public async void Throws_Exception_When_GetOrders()
{
DataService service = new DataService();
await service.GetOrders();
}
控制台输出
2013-07-01 16:46:08.552 TestsiOS[32724:c07] ExceptionsTests
2013-07-01 16:46:09.855 TestsiOS[32724:c07] [FAIL] Throws_Exception_When_GetOrders : System.Net.WebException was expected
...
Unhandled Exception:
System.Net.WebException: Error: NameResolutionFailure
at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00065] in /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/HttpWebRequest.cs:947
at RestSharp.Http.GetRawResponseAsync (IAsyncResult result, System.Action`1 callback) [0x00000] in <filename unknown>:0
...
我试图在我的测试方法返回任务。它只是忽略了我的测试方法。
我自己也尝试这个。测试运行结束。
public void Throws_Exception_When_GetOrders()
{
DataService service = new DataService();
service.GetOrders().Wait();
}
我不知道Touch.Unit,但你有没有尝试改变你的方法到'async Task'?如果这不起作用,Touch.Unit可能不支持'async'测试。 – svick
如果我将返回类型更改为任务,它会忽略我的测试方法 –