過濾非斷言例外我已經不具有明確的斷言表達式的方法測試。返回的測試值是一個非常長的字符串,必須由程序員檢查它是否正確。出於這個原因,如果代碼執行沒有例外,我打電話'Assert.Inclusive'。C#如何在單元測試
但是,如果某種異常的拋出,我想稱之爲「Assert.Fail」與異常消息。事情是這樣的:
[TestMethod()]
public void Test()
{
try {
string toBeChecked = MethodToBeTested();
//the string is so particular that no clear
//assertion can be made about it.
Console.WriteLine(toBeChecked);
Assert.Inconclusive("Check the console output.");
} catch(Exception e) {
Assert.Fail(e.Message);
}
}
這段代碼的問題是,如果沒有正規的異常被拋出,Assert.Inconclusive
方法也拋出了被逮住的異常,所以Assert.Fail
被調用,並從IDE測試結果窗格中似乎測試失敗了。這不是我想要的。
有沒有辦法來過濾例外,如捕捉每個異常,但斷言樣的呢?
(我使用.NET框架3.5SP1)
這是否可以離散測試的方法調用其他方法?如果您可以測試它們都按預期工作,則可以在調用方法中獲得一些信心。 –
@Greg B:在這種情況下,它是一種「單片」方法。但我不介意,我只想要其他開發人員能夠看到不確定的結果,但沒有例外,除非實際上有一個。 –