如何从Dart(Dartz)中的任一类型轻松提取Left或Right

莫里斯

我希望从返回类型的方法中轻松提取值Either<Exception, Object>

我正在做一些测试,但是无法轻松测试我的方法的返回。

例如:

final Either<ServerException, TokenModel> result = await repository.getToken(...);

为了测试我能够做到这一点

expect(result, equals(Right(tokenModelExpected))); // => OK

现在如何直接检索结果?

final TokenModel modelRetrieved = Left(result); ==> Not working..

我发现我必须像这样进行投射:

final TokenModel modelRetrieved = (result as Left).value; ==> But I have some linter complain, that telling me that I shouldn't do as to cast on object...

我也想测试该异常,但是它不起作用,例如:

expect(result, equals(Left(ServerException()))); // => KO

所以我尝试了这个

expect(Left(ServerException()), equals(Left(ServerException()))); // => KO as well, because it says that the instances are different.
莫里斯

好的,这里是我的问题的解决方案:

提取/检索数据

final Either<ServerException, TokenModel> result = await repository.getToken(...);
result.fold(
 (exception) => DoWhatYouWantWithException, 
 (tokenModel) => DoWhatYouWantWithModel
);

//Other way to 'extract' the data
if (result.isRight()) {
  final TokenModel tokenModel = result.getOrElse(null);
}

测试异常

//You can extract it from below, or test it directly with the type
expect(() => result, throwsA(isInstanceOf<ServerException>()));

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用任一类搜索父级-jQuery

来自分类Dev

如何为lambda创建唯一类型?

来自分类Dev

如何从多维数组中获取单一类型的数组(无循环)

来自分类Dev

如何从多维数组中获取单一类型的数组(无循环)

来自分类Dev

提取唯一类型及其计数,并使用索引键存储在数据框中

来自分类Dev

如何使两个不同特征中的依赖类型被识别为同一类型

来自分类Dev

C#-如何在两个不同的dll中引用同一类型?

来自分类Dev

如何判断两个模板类是否为同一类型

来自分类Dev

如何使用这种全速捕获代码仅处理单一类型的崩溃

来自分类Dev

使用suds在SOAP请求中多次发送同一类型

来自分类Dev

SQL计算同一类型中的男性和女性人数

来自分类Dev

如何从任一类外部访问在另一个类内创建的类的变量

来自分类Dev

Java中的泛型数组,是否将所有类型强制为同一类型?

来自分类Dev

Ruby:单一类型元素的数组

来自分类Dev

获得新的第一类型

来自分类Dev

Purescript-无法统一类型

来自分类Dev

Ruby:单一类型元素的数组

来自分类Dev

怎么低估了!为同一类型工作?

来自分类Dev

如何合并两个扩展/继承同一类型的两种类型的类型化数组?

来自分类Dev

在处理模板时,如何避免在函数头和主体中两次不同的时间声明同一类型?

来自分类Dev

在处理模板时,如何避免在函数头和主体中两次不同的时间声明同一类型?

来自分类Dev

如何将从猫鼬中的find函数获得的数组转换为单一类型的数组(例如,字符串)

来自分类Dev

如何将类型从一类传递到另一类?

来自分类Dev

如何找到具有单一类型恰好N个关系的所有节点?

来自分类Dev

Haskell:实例参数化类型一个单一类型

来自分类Dev

仅在一类中设置通用类型

来自分类Dev

C ++在同一类的方法中返回对象的类型

来自分类Dev

仅在一类中设置通用类型

来自分类Dev

统一类型和非类型模板参数

Related 相关文章

  1. 1

    如何使用任一类搜索父级-jQuery

  2. 2

    如何为lambda创建唯一类型?

  3. 3

    如何从多维数组中获取单一类型的数组(无循环)

  4. 4

    如何从多维数组中获取单一类型的数组(无循环)

  5. 5

    提取唯一类型及其计数,并使用索引键存储在数据框中

  6. 6

    如何使两个不同特征中的依赖类型被识别为同一类型

  7. 7

    C#-如何在两个不同的dll中引用同一类型?

  8. 8

    如何判断两个模板类是否为同一类型

  9. 9

    如何使用这种全速捕获代码仅处理单一类型的崩溃

  10. 10

    使用suds在SOAP请求中多次发送同一类型

  11. 11

    SQL计算同一类型中的男性和女性人数

  12. 12

    如何从任一类外部访问在另一个类内创建的类的变量

  13. 13

    Java中的泛型数组,是否将所有类型强制为同一类型?

  14. 14

    Ruby:单一类型元素的数组

  15. 15

    获得新的第一类型

  16. 16

    Purescript-无法统一类型

  17. 17

    Ruby:单一类型元素的数组

  18. 18

    怎么低估了!为同一类型工作?

  19. 19

    如何合并两个扩展/继承同一类型的两种类型的类型化数组?

  20. 20

    在处理模板时,如何避免在函数头和主体中两次不同的时间声明同一类型?

  21. 21

    在处理模板时,如何避免在函数头和主体中两次不同的时间声明同一类型?

  22. 22

    如何将从猫鼬中的find函数获得的数组转换为单一类型的数组(例如,字符串)

  23. 23

    如何将类型从一类传递到另一类?

  24. 24

    如何找到具有单一类型恰好N个关系的所有节点?

  25. 25

    Haskell:实例参数化类型一个单一类型

  26. 26

    仅在一类中设置通用类型

  27. 27

    C ++在同一类的方法中返回对象的类型

  28. 28

    仅在一类中设置通用类型

  29. 29

    统一类型和非类型模板参数

热门标签

归档