Итак, я пишу тестирование виджетов для Flutter, используя плагин тестирования Flutter. Итак, в моем тестовом виджете я использую Mockito для имитации сторонних сервисов. Итак, я получаю сообщение об ошибке: «Тип Null не является подтипом bool». Я пытался это исправить, но не понимаю, почему я все еще получаю сообщение об ошибке при запуске тестового кода.
Я пытался это исправить, но не понимаю, почему я все еще получаю сообщение об ошибке при запуске тестового кода. Вот мой код ниже:
class MockGlobalSearchViewModel extends Mock implements GlobalSearchViewModel {}
@GenerateMocks([MockGlobalSearchViewModel])
testWidgets('Global Widget Test', (WidgetTester tester) async {
// Create mock instances
final mockGlobalSearchViewModel = MockGlobalSearchViewModel();
when(mockGlobalSearchViewModel.isNetworkError()).thenReturn(true);//this is where I am getting the error
final globalSearchViewModelProvider = Provider<GlobalSearchViewModel>.value(value: mockGlobalSearchViewModel);
await tester.pumpWidget(
MaterialApp(
home: MultiProvider(
providers: [
globalSearchViewModelProvider,
],
child: const GlobalSearchWidget()
Итак, могу ли я получить от кого-нибудь помощь, я честно пробовал что-нибудь и не могу понять, почему я не понимаю это правильно.





Вы получаете сообщение об ошибке, поскольку макеты для GlobalSearchViewModel не были созданы. Mockito использует генерацию кода для создания своих макетов.
Чтобы создать макеты для GlobalSearchViewModel, сделайте следующее:
Удалите написанный вручную макет из вашего тестового файла:
class MockGlobalSearchViewModel extends Mock implements GlobalSearchViewModel {}
Добавьте пакет build_runner в зависимости разработки вашего проекта:
dart pub add dev:build_runner
Импортируйте сгенерированный файл макетов и добавьте к нему аннотацию @GenerateMocks:
@GenerateMocks([GlobalSearchViewModel])
import 'test_file_name.mocks.dart'; // Replace `test_file_name` with your test file name
Запустите build_runner, чтобы сгенерировать файл макетов:
dart run build_runner build
Запустите тесты, и ошибка «Null не является подтипом bool» не должна возникать.
flutter test