単体テスト用のカスタム Assert クラスを作成しましたが、テストが失敗したことを通知したいときに何をすればよいかわかりません。
public static class MyAssert
{
public static void Contains(File file, string text){
if(!ContainText(file, text)){
// what to do here?
}
}
}
Classを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 をスローする方が理にかなっているでしょうか? 私が見逃している別のオプションはありますか?