C#单元测试数精度题

标签 c# visual-studio-2008 unit-testing

我正在测试将返回其均值/方差/标准差的基本数学函数。我面临的问题是我无法获得“期望值”的精度来计算函数返回的内容。例如,如果方差函数返回 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/

相关文章:

c# - TSqlUnit 值得使用吗?

C# 如何每秒递增一个值,递增值是根据 amount.text 文件

visual-studio-2008 - 为什么我的服务引用只生成异步方法?

asp.net - 如何关闭 Visual Studio 2008 中的对齐线?

unit-testing - Kotlin 中的模拟扩展功能

android - 如何为 Android Activity 创建 Mock 对象 (Junit)

c# - C# 中泛型类中的单独 GUID

c# - 每个对象是否为常量分配内存?

c# - WPF 获取 menuItem 的父项

C++ 新手 : Having all sorts of problems linking