在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 MatcherthrowsAMatcher
expect(() => validate(-1), returnsNormally);
尽管允许您的函数抛出未捕获的异常最终会导致测试失败,但使用returnsNormally可以导致更清晰的失败消息。