我在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
测试异常并检查是否已抛出异常?
谢谢大家!
答案 0 :(得分:3)
您可以使用以下命令测试是否抛出异常:
test('when the object is in wrong format', () {
Map objectMap = {};
expect(() => new MyAwesomeClass.fromMap(objectMap), throws);
});
将第一个参数传递给引发异常的匿名函数。