簡體   English   中英

為 VS UT Assert class 創建自定義擴展方法的最佳方法是什么?

[英]What is the best way to create custom extension methods for VS UT Assert class?

我想知道為 Microsoft Visual Studio 單元測試斷言 class 編寫自定義擴展方法的最佳方法是什么。

如果你指的是這個Assert class,那么你不能添加擴展方法。 擴展方法只能應用於 object 實例。 由於這個 class 是 static,它永遠不能被實例化。

您可以像這樣添加自己的自定義斷言類型 class :

public static class MyAssert {
    public static void AreEqual(object expected, object actual) {
        // TODO: throw if not equal
    }
}

您可以為此斷言class 創建擴展方法。

class 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 class 創建擴展方法。

例如,您可以使用擴展方法:

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM