首页 > 解决方案 > 在 Dart 中,如何验证单元测试中不抛出异常的 void 方法?

问题描述

我正在 Dart 中实现一些数据验证库。验证方法具有void返回类型并在错误时引发异常。下面的代码显示了一个示例。

import 'package:quiver/check.dart';
    
void validate(int value) {
    checkArgument(value >= 0 && value <= 100);
}

在单元测试中,我可以使用以下代码来测试无效输入的异常情况:

expect(() => validate(-1), throwsArgumentError);

但是,如何验证该方法不会为有效输入抛出异常?

标签: unit-testingdart

解决方案


package:test提供了一个. 你会以与/etc相同的方式使用它。s 与零参数函数匹配的地方:returnsNormally MatcherthrowsAMatcher

expect(() => validate(-1), returnsNormally);

即使允许您的函数抛出未捕获的异常最终会导致测试失败,但使用returnsNormally可以导致更清晰的失败消息。


推荐阅读