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
如果我將返回類型更改爲任務,它會忽略我的測試方法 –