【发布时间】:2010-08-27 15:18:10
【问题描述】:
Assert.Equal(1000000.0, table.Convert("g", "mcg", 1.0)); // Pass
Assert.Equal(2000000.0, table.Convert("g", "mcg", 2.0)); // Pass
Assert.Equal(3200000.0, table.Convert("g", "mcg", 3.2)); // Fail
// The failing one is equal to doing the following calculation, which fails also:
Assert.Equal(3200000.0, 3.2 * 1.0 / (1.0 / 1000000.0)); // Fail
Assert.Equal(3200000.0, 3.2 * (1.0 / (1.0 / 1000000.0)));// Pass, WTF?!?!
===================================================================
Assert.Equal() Failure
Expected: 3200000
Actual: 3200000
【问题讨论】:
-
Table.Convert 的代码在哪里?数据类型有哪些?您可能正在使用 Double 或 Float,因为它们的相等性很棘手。
-
好点。添加了计算,这也失败了。我正在使用“双重”。
标签: unit-testing double assert xunit xunit.net