[英]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.