我有多於一個參數的方法,通過在任何參數爲空時拋出ArgumentNullExceptions和ArgumentExceptions來防止錯誤輸入。預計nUnit中沒有ExpectedException屬性的異常
因此有兩個明顯的方式來測試這一點:
- 一個使用[的ExpectedException]屬性使用的所有參數
- 一次測試多種嘗試{} catch塊
嘗試捕捉的東西看起來像這樣:
try
{
controller.Foo(null, new SecondParameter());
Assert.Fail("ArgumentNullException wasn't thrown");
} catch (ArgumentNullException)
{}
With with小問題。如果測試通過,Assert.Fail永遠不會被調用,因此將被突出顯示爲未覆蓋的測試代碼(由NCover提供)。
我知道這實際上並不是問題,因爲它是我希望100%覆蓋的業務代碼,而不是測試代碼。我仍然很好奇,如果有一種方法可以將多個異常拋出的調用壓縮到一個測試用例中而不會導致死亡的LoCs?