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