unit-testing - Dart 测试大致相等

标签 unit-testing dart

我现在正在尝试使用 dart:test特征。

我可以写这样的东西:
expect(areaUnderCurveWithRectangleRule(f1, 0,1,1000), equals(2));
但是我们知道,在 float/double 计算中,没有精确相等这样的东西。所以我想知道是否有 大致相等 测试方法?它将返回 true对于两个 double 值,如果它们的差异在某个范围内 epsilon (例如,1E-6)或某个百分比?

如果没有,这会向 Dart 团队提出一个很好的功能请求吗?

最佳答案

dart:test提供 closeTo 用于此目的的匹配器:

expect(areaUnderCurveWithRectangleRule(f1, 0,1,1000), closeTo(2, epsilon));

请注意 closeTo使用绝对增量,这可能不适合具有非常不同幅度的浮点值。

如果你想要一个基于百分比比较的版本,应该很容易包装 closeTo使用您自己的功能,例如:

Matcher closeToPercentage(num value, double fraction) {
  final delta = value * fraction;
  return closeTo(value, delta);
}

关于unit-testing - Dart 测试大致相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61037193/

相关文章:

SIMULINK 中大型或中等复杂系统模型的单元测试和集成测试

c# - 我们可以在 .aspx.cs 页面中编写单元测试方法吗?

serial-port - 使用 DartLang 通过串口进行通信

flutter - 将 Uint8List 转换为 flutter web 中的文件

c++ - 抑制谷歌测试断言的输出

ios - 类在目标中被多次链接

c# - 如何使用 Moq 对 Entity Framework 6 中的删除操作进行单元测试

dart - 如何知道何时 Dart 聚合物元素被完全渲染

dart - 执行 `pub build` 时如何从命令行设置 dart2js --minify 选项?

dart - Flutter.io (dart) - 如何创建左填充覆盖?