与ThrowsA一起使用时,TypeMatcher不起作用

菲利普

我的应用程序中包含以下代码:

expect(() => dataSource.getLastPost(), throwsA(TypeMatcher<CacheException>()));

这导致以下错误

Expected: throws <Instance of 'TypeMatcher<CacheException>'>
  Actual: <Closure: () => Future<PostModel>>
   Which: threw <Instance of 'CacheException'>

如果我删除包装CacheException的TypeMatcher ...

expect(() => dataSource.getLastPost(), throwsA(CacheException()));

那么它仍然会给出类似的错误

Expected: throws <Instance of 'CacheException'>
  Actual: <Closure: () => Future<PostModel>>
   Which: threw <Instance of 'CacheException'>

我想知道我在做什么错?无论哪种方式,很明显,我们都在期待CacheException并抛出CacheException。那为什么期望测试没有通过?

雷米·罗素(Remi Rousselet)

正确的写throwsA(TypeMatcher<CacheException>())

您可能遇到的问题是,在Flutter和测试的上下文中,有两个名称为的类TypeMatcher

它们都以相同的方式使用,也称为TypeMatcher<SomeClass>但是其中只有一个是Matcher,测试可以理解。

您的问题是,您很可能TypeMatcher从中使用flutter/widgets由于它不是匹配器,因此:

throwsA(TypeMatcher<MyClass>())

被解释为:

throwsA(equals(TypeMatcher<MyClass>())

解决的办法是使用正确的TypeMatcher,从package:matcher/matcher.dart

但是,首先,你应该使用TypeMatcher直接。

代替:

throwsA(TypeMatcher<MyClass>())

您应该使用速记isA<T>匹配器:

throwsA(isA<MyClass>())

这样可以完全消除名称冲突

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

let 与 -XRankNTypes 一起使用时不起作用

与apache Alias一起使用时,htaccess文件存在的检查似乎不起作用

将UpdateOne与MongoDB Golang驱动程序一起使用时Upsert不起作用

自定义授权器与AWS Chalice一起使用时不起作用

htmlentities()与表中的数据一起使用时不起作用

与 python3 一起使用时,ConfigParser 库不起作用

Python Pandas:与apply()一起使用时功能不起作用

与Google App Engine和Flask一起使用时,角线路线不起作用

Laravel 5-与重定向一起使用时withInput不起作用

与Ionic Framework一起使用时,Charset UTF 8不起作用

Ansible 设置模块的过滤器在与 playbook 一起使用时不起作用

与Onsen UI一起使用时,Videogular控制器不起作用

与plt.show一起使用时cv2.imshow不起作用

与popen python一起使用时,输入命令似乎不起作用

Bootstrap切换chechkbox与html helper chechkboxfor一起使用时不起作用?

:selected与rails形式的collection_select一起使用时不起作用

与Sass功能一起使用时,Sass分割不起作用

与“手表”一起使用时,“ awk”不起作用

与Radium和Material-UI一起使用时,React悬停样式不起作用

PHP if else 在将多变量与 OR 一起使用时不起作用

cat命令:与文件一起使用时,stdin重定向不起作用

修饰符与 .apply 一起使用时不起作用

与 Plus/Min 按钮一起使用时,innerHTML 不起作用

与客户拦截器一起使用时,Axios捕获不起作用

与导航抽屉一起使用时,工具栏的后退按钮不起作用

在Powershell中与正则表达式一起使用时,Leftpad不起作用

与我的应用程序一起使用时,codeScanner不起作用

与Boostrap .form-control一起使用时,过渡持续时间不起作用

与数组字符串一起使用时,Javascript 归档不起作用