gpt4 book ai didi

unit-testing - 在 Dart 中,如何在单元测试中验证不抛出异常的 void 方法?

转载 作者:行者123 更新时间:2023-12-05 08:15:16 24 4
gpt4 key购买 nike

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

import 'package:quiver/check.dart';

void validate(int value) {
checkArgument(value >= 0 && value <= 100);
}

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

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

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

最佳答案

package:test 提供了一个 returnsNormally 匹配器。您将以与 throwsA/etc 相同的方式使用它。 Matcher 匹配零参数函数的位置:

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

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

为了完整性(没有双关语意),异步函数的等价物是使用 completes匹配器:

await expectLater(someAsynchronousFunction(), completes);

关于unit-testing - 在 Dart 中,如何在单元测试中验证不抛出异常的 void 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65853973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com