unit-testing - 在 Dart 中,如何验证单元测试中不抛出异常的 void 方法?
问题描述
我正在 Dart 中实现一些数据验证库。验证方法具有void
返回类型并在错误时引发异常。下面的代码显示了一个示例。
import 'package:quiver/check.dart';
void validate(int value) {
checkArgument(value >= 0 && value <= 100);
}
在单元测试中,我可以使用以下代码来测试无效输入的异常情况:
expect(() => validate(-1), throwsArgumentError);
但是,如何验证该方法不会为有效输入抛出异常?
解决方案
package:test
提供了一个. 你会以与/etc相同的方式使用它。s 与零参数函数匹配的地方:returnsNormally
Matcher
throwsA
Matcher
expect(() => validate(-1), returnsNormally);
即使允许您的函数抛出未捕获的异常最终会导致测试失败,但使用returnsNormally
可以导致更清晰的失败消息。
推荐阅读
- google-apps-script - 自动清除范围
- javascript - SVG 颜色填充无法使用 JavaScript
- java - Firebase,com.google.firebase:firebase-messaging:17.3.0 不工作
- java - 在 webview 的 WebBackForwardList 中插入 url
- ruby-on-rails - 在使用设计保存之前设置模型
- mongodb - 蒙哥。使用一个数组查询文档,其子元素都必须匹配一个查询
- python - 没有为对象类型命名为 1 的轴
- java - 使用java 8中的lambda函数获取ArrayList的总数,根据日期分组
- javascript - 如何将文本和图像发布到 Facebook 页面?
- java - Recycleview 不从 json url 加载图像