Тест блока безопасного хранения Flutter

#flutter #unit-testing #mockito #flutter-test #flutter-mockito

Вопрос:

Эй, в рамках проекта я хотел бы протестировать свои классы, как показано ниже, но у меня есть небольшая проблема. Мне невозможно проверить, я всегда сталкиваюсь с одними и теми же ошибками «тип» Null «не является подтипом типа» Будущееlt;OAuthToken?gt; «» или «Оператор проверки Null, используемый для нулевого значения». Например :

 class Authentication {  final FlutterSecureStorage _secureStorage = const FlutterSecureStorage();   static const String BEARER_TOKEN = 'BEARER_TOKEN';   Futurelt;OAuthTokengt; setToken(OAuthTokenResponse token) async {  assert(token.accessToken != null, 'A non null token is required');  final String jsonToken = json.encode(token.toJson());  await _secureStorage.write(key: BEARER_TOKEN, value: jsonToken);  return token;  }   Futurelt; OAuthToken?gt; getToken() async {  final String? jsonToken = await _secureStorage.read(key: BEARER_TOKEN);  if (jsonToken == null) {  return null;  }  return OAuthToken(json.decode(jsonToken));  }   Futurelt;voidgt; deleteToken() async {  await _secureStorage.delete(key: BEARER_TOKEN);  } }  

Мое модульное тестирование :

 void main() {  final Authentication dataSource = Authentication();  final MockFlutterSecureStorage mockSecureStorage = MockFlutterSecureStorage();   final token = OAuthToken.fromJson(json.decode(fixture('oauth_token_response.json')));  group('getToken', () {  test('should return OAuthToken from FlutterSecureStorage when there is one the saved', () async {  // arrange  when(() =gt; mockSecureStorage.read(key: BEARER_TOKEN)).thenAnswer((_) async =gt; fixture('oauth_token_response.json'));   // act  final result = await dataSource.getToken();   //assert  verify(() =gt; mockSecureStorage.read(key: BEARER_TOKEN));  expect(result, equals(token));  });   test('should return null when is not saved token', () async {  // arrange  when(() =gt; mockSecureStorage.read(key: BEARER_TOKEN)).thenAnswer((_) async =gt; null);   // act  final result = await dataSource.getToken();   //assert  expect(result, equals(null));  }); });  group('saveToken', () {  test('should call FlutterSecureStorage to save token', () async {  // arrange  when(() =gt; mockSecureStorage.write(key: BEARER_TOKEN, value: json.encode(token))).thenAnswer((invocation) =gt; Futurelt;voidgt;.value());   //act  await dataSource.setToken(token);   // assert  final expectedJsonString = json.encode(token.toJson());  verify(() =gt; mockSecureStorage.write(key: BEARER_TOKEN, value: expectedJsonString));  }); }); }  

Я попробовал Коктейль и Мокито, и у меня та же ошибка… Может быть, проблема с моком ?

Спасибо