我創建單元測試自定義斷言類,我不知道該怎麼做時,我想通知測試失敗:如果Assert失敗,自定義的Assert類應該執行什麼操作?
public static class MyAssert
{
public static void Contains(File file, string text){
if(!ContainText(file, text)){
// what to do here?
}
}
}
我反映Microsoft.VisualStudio.TestTools.UnitTesting.Assert
類,並注意到它調用HandleFail:
internal static void HandleFail(string assertionName, string message, params object[] parameters)
{
string str = string.Empty;
if (!string.IsNullOrEmpty(message))
str = parameters != null ? string.Format((IFormatProvider) CultureInfo.CurrentCulture, Assert.ReplaceNulls((object) message), parameters) : Assert.ReplaceNulls((object) message);
if (Assert.AssertionFailure != null)
Assert.AssertionFailure((object) null, EventArgs.Empty);
throw new AssertFailedException((string) FrameworkMessages.AssertionFailed((object) assertionName, (object) str));
}
但是這是一種內部方法。我可以使用反射來調用它,或者拋出一個AssertFailedException更有意義?是否有另一個我失蹤的選項?
Assert.Fail是吧?是的,這是有道理的... – Daryl