簡體   English   中英

Visual Studio單元測試拒絕運行

[英]Visual Studio unit test refuses to run

我開始使用Visual Studio和內置的單元測試器測試學校項目。 該項目是用C#編寫的類庫。 到目前為止,我的所有測試均有效。 但是,我仍然有1個測試無法運行。 它沒有通過或失敗,它只是無法運行。 沒有給出錯誤消息,我無法運行或調試它或任何東西。 這是我正在嘗試的測試:

[TestMethod()]
    public void PublicDecimalEqualityTest2()
    {
        Formula form1 = new Formula("2.3232000+3.00");
        Formula form2 = new Formula("2.3232+3.0000");
        Assert.IsTrue(form1==form2);
    }

我的課程的“ ==”運算符已正確定義。 奇怪的是,此測試運行並通過:

[TestMethod()]
    public void PublicDecimalEqualityTest()
    {
        Formula form1 = new Formula("2.3232000+3.00");
        Formula form2 = new Formula("2.3232+3.0000");
        Assert.IsTrue(form1.Equals(form2));
    }

知道為什么第一次發布的測試無法運行嗎?

編輯:這是==運算符的代碼:

public static bool operator ==(Formula f1, Formula f2) {
    if (f1==null && f2==null)
    { return true; }
    if (f1==null || f2==null)
    {return false;}
    if (f1.GetFormulaBasic()==f2.GetFormulaBasic())
    { return true; }
    else
    { return false;}
}

GetFormulaBasic()只是從類中返回一個私有字符串。 希望這可以幫助。

我的猜測是正確的。 當您檢查null時,您正在實現中調用運算符== Object.ReferenceEquals替換==以測試運算符內部是否為null。 在這里,簡化了一下:

public static bool operator ==(Formula f1, Formula f2)
{
    if (object.ReferenceEquals(f1, f2))
    { 
        return true; 
    }
    if (object.ReferenceEquals(f1, null) || object.ReferenceEquals(f2, null))
    {
        return false;
    }

    return f1.GetFormulaBasic() == f2.GetFormulaBasic();
}

暫無
暫無

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

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