Как легко извлечь Левый или Правый из любого типа в Dart (Dartz) - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу легко извлечь значение из метода, который возвращает тип 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.

1 Ответ

0 голосов
/ 08 ноября 2019

Я не могу оставить комментарий ... Но, возможно, вы могли бы посмотреть на это сообщение . Это не тот же язык, но похоже, что это то же самое поведение.

Удачи.

...