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