Dart测试中对Exception做类型检查返回错误结果的原因咨询
问题分析与解决
你的测试失败核心原因是错误地将Exception类型本身当成了实例。
- 代码里
const error = Exception;这行,Exception是类的类型标识,而非实例创建语句,所以error存储的是Exception类的类型对象(Type类型),不是Exception的实例。 - 执行
error is Exception时,实际是判断Type类型对象是否属于Exception实例,结果自然为false,导致测试不通过。
修复方法
要创建Exception的实例,需要添加括号调用构造函数:
test('test error', () async { const error = Exception(); // 加括号创建实例 const a = error is Exception; expect(a, true); });
此时error是Exception的合法实例,error is Exception会返回true,测试即可通过。
内容的提问来源于stack exchange,提问作者Dario Digregorio
相关产品推荐
相关产品推荐

