我想知道为Microsoft Visual Studio Unit Testing Assert类编写自定义扩展方法的最佳方法是什么
您可以为这个Assert类创建扩展方法。
类Assert的版本现在是:public sealed class Assert
{
private static Assert that;
public static Assert That
{
get
{
if (Assert.that == null)
Assert.that = new Assert();
return Assert.that;
}
}
}
这意味着现在你可以为Assert类创建扩展方法。
例如,您可以使用扩展方法:
public static class AssertExtensions
{
public static void IsDateToday(this Assert assert, DateTime today)
{
if (today.Date != DateTime.Now.Date)
{
throw new AssertFailedException("Kaboom! Assert failed bro..");
}
}
}
然后在单元测试中你可以写:
Assert.That.IsDateToday(someDateTime);
如果引用的是Assert类,则不能添加扩展方法。扩展方法只能应用于对象实例。因为这个类是静态的,所以它永远不能被实例化。
你可以像这样添加你自己的自定义Assert类型类:
public static class MyAssert {
public static void AreEqual(object expected, object actual) {
// TODO: throw if not equal
}
}