Я сделал демонстрационный проект по тестированию с VS2010 в компании, в которой я работаю.
В качестве входных данных для тестов немного математического расчета класса: MathOps.
MathOps может выдавать некоторые исключения и еще много чего.
Однако, когда я настраивал модульные тесты, я наткнулся на модульный тест, который, кажется, ведет себя очень странно.
Объект 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>
Если я сделаю 5.7000001, добавив 3.4000001 вместо 3.4, тест пройден.
Кто-нибудь знает причину этой ошибки?