gpt4 book ai didi

unit-testing - Dart - 构造函数中异常的单元测试

转载 作者:行者123 更新时间:2023-12-04 05:03:59 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do you unittest exceptions in Dart?

(7 个回答)


6年前关闭。




我在 Dart (1.9.3) 中编写了一些简单的项目,并使用 unittest 进行单元测试图书馆。我在检查构造函数是否抛出错误时遇到问题。这是我为此问题编写的示例代码:

class MyAwesomeClass {
String theKey;

MyAwesomeClass();

MyAwesomeClass.fromMap(Map someMap) {
if (!someMap.containsKey('the_key')) {
throw new Exception('Invalid object format');
}

theKey = someMap['the key'];
}
}

这是单元测试:

test('when the object is in wrong format', () {
Map objectMap = {};

expect(new MyAwesomeClass.fromMap(objectMap), throws);
});

问题是测试失败并显示以下消息:
Test failed: Caught Exception: Invalid object format

我做错了什么?是否是 unittest 中的错误?或者我应该用 try..catch 测试异常并检查是否已抛出异常?
谢谢大家!

最佳答案

您可以使用以下方法测试是否已抛出异常:

    test('when the object is in wrong format', () {
Map objectMap = {};

expect(() => new MyAwesomeClass.fromMap(objectMap), throws);
});

将引发异常的匿名函数作为第一个参数传递。

关于unit-testing - Dart - 构造函数中异常的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29782434/

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