为VS UT Assert类创建自定义扩展方法的最佳方法是什么?

本文关键字:方法 最佳 是什么 扩展 自定义 UT VS Assert 创建 | 更新日期: 2023-09-27 18:05:17

我想知道为Microsoft Visual Studio Unit Testing Assert类编写自定义扩展方法的最佳方法是什么

为VS UT 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
    }
}