我正在测试将返回其均值/方差/标准差的基本数学函数。我面临的问题是我无法获得“期望值”的精度来计算函数返回的内容。例如,如果方差函数返回 50.5555555555566,即使我将预期值明确设置为 50.5555555555566,它也会说它们是两个不同的 double 值,单元测试失败。
下面是单元测试的实际输出:
Assert.AreEqual 失败。预期:<50.5555555555556>。实际:<50.5555555555566>。
任何人都可以建议解决这个问题的方法吗?我正在使用内置的 Visual Studio 单元测试套件。谢谢。
最佳答案
float (单/双)需要用公差值来测试。所以你可以说如果这两个数字彼此在 0.0001(公差)以内,则认为它们相等
在 NUnit 中,你有 comparison asserts .例如下面的 AreEqual 重载,找到 MSTest 的等效重载..
Assert.AreEqual( double expected, double actual, double tolerance,
string message );
更新:这应该是the method你需要在 MSTest 中。试试看它是否能解决您的问题..
关于C#单元测试数精度题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4015760/