如果我有
class ErrorThrower{
void throwAnError(String argument){
throw new Error();
}
}
Run Code Online (Sandbox Code Playgroud)
我想测试 throwAnError 是否抛出异常,或者更准确地说是一个 Error
这是我的代码,但它不起作用
test('', () {
var errorThrower = new ErrorThrower();
expect(errorThrower.throwAnError("string"), throwsException);
});
Run Code Online (Sandbox Code Playgroud)
Dart 的 testing 包可以检测抛出的错误,但该函数要么需要是异步的(最常见的是返回 a Future),要么作为回调提供,因此该expect函数可以懒惰地评估它。在你的例子中:
test('', () {
var errorThrower = new ErrorThrower();
expect() => errorThrower.throwAnError("string"), throwsError);
});
Run Code Online (Sandbox Code Playgroud)
... 应该管用。请注意,我写了throwsErrornot throwsException,在 Dart 中,这是两个不同的东西(不会相互继承),目的是在生产代码中不会故意捕获错误,而FormatException应该是异常(例如)。
| 归档时间: |
|
| 查看次数: |
1990 次 |
| 最近记录: |