1
我已經做了一個演示項目與VS2010在我工作的公司進行測試。 作爲測試的輸入一個小數學計算類:MathOps。 MathOps可以拋出一些例外情況。然而,當我設置單元測試時,我來到了一個單元測試,這似乎表現得很奇怪。VS2010單元測試失敗,而結果是正確的
MathOps對象被稱爲target,並在測試初始化方法中進行初始化以演示它可能用於什麼。
Private target As MathOps = Nothing
<TestInitialize()> _
Public Sub MyTestInitialize()
target = New MathOps()
End Sub
該行爲不端的測試是以下各項之一:
'''<summary>
'''A test for MathOps.add
'''</summary>
<TestMethod()> _
Public Sub addTest()
Dim first As Double = 2.3
Dim second As Double = 3.4
Dim expected As Double = 5.7
Dim actual As Double
actual = target.add(first, second)
Assert.AreEqual(expected, actual)
End Sub
當我使用,其導致5.7另外方面是所述預期/結果值,則斷言失敗,即使代碼產生正確的結果。
Assert.AreEqual失敗。預計:< 5,7>。實際:< 5,7>。
如果我通過添加3.4000001而不是3.4來測試5.7000001,測試通過。
有誰知道這個錯誤的原因?
舍入問題似乎適用於這裏,所以我想答案是正確的,即使VS沒有顯示不同的值。它仍然讓我惱火,但我想我必須忍受它。 – Onno
顯示的是什麼,確切的值不一定是相同的。顯示代碼消除了最小差異。但是雙打的直接比較比較每一點。 –