如何解决如何在 Dart 中测试两个持续时间是否大致相等
我正在尝试测试两个持续时间的相等性。基本上问题归结为:
test('times are approximately equal',() {
final expected = DateTime.now();
final actual = DateTime.now();
expect(actual,equals(expected));
});
此测试失败,因为时间略有不同:
Expected: DateTime:<2021-06-24 14:37:31.946196>
Actual: DateTime:<2021-06-24 14:37:31.946197>
只要持续时间彼此相差不到一秒,这对我来说就足够了。我该如何测试?
我找到了答案,所以我将其添加到下面。
解决方法
您可以将持续时间转换为毫秒,然后使用 closeTo
匹配器。
test('times are approximately equal',() {
final expected = DateTime.now();
final actual = DateTime.now();
expect(actual.millisecond,closeTo(expected.millisecond,1000));
});
1000
是增量。这意味着只要预期持续时间在实际持续时间的 1000 毫秒以内,那么测试就会通过。
感谢 this answer 为我指明了正确的方向。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。