簡體   English   中英

為什么這個單元測試如此“慢”

[英]Why is this unit test so “slow”

我在想這個。 我創建了一個復雜類只是為了好玩(存儲復雜數字)並習慣TDD。

我寫了一個以下測試:

    [TestMethod]
    [TestCategory("COMPLEX_OPERATOR")]
    public void ComplexAdditionWorks()
    {
        var c1 = new Complex(1.5, 3.0);
        var c2 = new Complex(3.0, 2.5);

        var cOutcome = c1 + c2;

        var cExpected = new Complex(4.5, 5.5);

        Assert.AreEqual(cOutcome, cExpected);
    }

這是實施:

    public static Complex operator +(Complex c1, Complex c2)
    {
        return new Complex(c1.Real + c2.Real, c1.Imaginary + c2.Imaginary);
    }

然而,該單元測試的運行時間相對較慢,為0.10秒。 與減法運算符相比,這是一個巨大的差異:

  public static Complex operator -(Complex c1, Complex c2)
    {
        return new Complex(c1.Real - c2.Real, c1.Imaginary - c2.Imaginary);
    }

通過可比較的單元測試:

    [TestMethod]
    [TestCategory("COMPLEX_OPERATOR")]
    public void ComplexSubstractionWorks()
    {
        var c1 = new Complex(3.0, 2.5);
        var c2 = new Complex(1.0, 1.5);

        var cOutcome = c1 - c2;

        var cExpected = new Complex(2.0, 1.0);

        Assert.AreEqual(cOutcome, cExpected);
    }

但是這個速度非常快(單位測試說0.00秒)

為什么加法運算符/單元測試在這里這么慢......

順便說一下,我進行了20次這樣的單元測試,看它是不是只是一個打嗝或什么的。

好的,我發現它是什么。

只是public void ComplexAdditionWorks()是第一個運行的測試。 我以為它們會按照編程的順序運行,但它按字母順序排列。

R#將初始化時間添加到第一次測試中仍然很奇怪......

暫無
暫無

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

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