'Return type 'Null' is not a subtype of type 'Future<void>' in mocktail

I am trying to test cash articles with HIVE package put it throws a type 'Null' is not a subtype >of type 'Future

I stubed it but I don't know why

test:

  group("cache last gotten articles", () {
    test('should cache the last gotten articles', () async {
      // arrange
      final expectedJsonArticles = jsonEncode(fixture('cached_articles'));
      when(() => mockHive.openBox(articles))
          .thenAnswer((_) async => mockHiveBox);
      when(() => mockHiveBox.put(articles, expectedJsonArticles)).thenAnswer((_) async =>true);
      print(mockHiveBox.put(articles, expectedJsonArticles).runtimeType)  ;
      final x = mockHiveBox.put(articles, expectedJsonArticles);
      // act
     await  articleLocaleDataSourceImpl.cacheArticleLocale(tArticlesList);
      // assert
      verify(()=>x).called(1);
      verify(() => mockHive.openBox(articles)).called(1);

    });
  });

function:

  Future<void> cacheArticleLocale(List<ArticleEntity> articles) async {
    final box = await hive.openBox(LocaleDbKeys.articleBox);
    final Map<String, dynamic> parsedArticles = {};
    parsedArticles['articles'] =
        articles.map((article) => (article as ArticleModel).toJson()).toList();
    box.put(
        LocaleDbKeys.articleBox, jsonEncode(parsedArticles['articles']));
  }


Solution 1:[1]

I solve it...

the problem was with the data I put on put expectedJsonArticles on the test file and the data on the production file

 mockHiveBox.put(articles, expectedJsonArticles)
 box.put(LocaleDbKeys.articleBox, jsonEncode(parsedArticles['articles']));

is not the same

but the error message tells me that I didn't stub this!

in case you faced this error this will help you

another case

if you didn't stub a function it will return a null value instead

please check this:

https://pub.dev/packages/mocktail#:~:text=type%20%27Null%27%20is%20not%20a%20subtype%20of%20type%20%27Future%3Cvoid%3E%27

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mo_