Исключение PlatformException, Недопустимый аргумент после попытки имитировать file_picker для интеграционного теста, Флаттер

#flutter #mocking #integration-testing #filepicker.io #flutter-integration-test

Вопрос:

Я уже использую file_picker в своих приложениях, и теперь я создаю интеграционный тест. Я искал способ издеваться над file_picker или зависимостями, и вот результат:

 import 'dart:io';
import 'dart:typed_data';

import 'package:file_picker/file_picker.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:path_provider/path_provider.dart';

void main() async {
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();

  setUp(() {
    mockFilePicker();
  });

  testWidgets("test", (WidgetTester tester) async {
    // await app.main();
    // .. test case ..
  });
}

mockFilePicker() {
  const MethodChannel channel =
      MethodChannel('miguelruivo.flutter.plugins.filepicker');
  channel.setMockMethodCallHandler((MethodCall methodCall) async {
    print("MockMethodChannel run");

    ByteData data = await rootBundle.load('assets/images/ic_bill.png');
    Uint8List bytes = data.buffer.asUint8List();
    Directory tempDir = await getTemporaryDirectory();
    File file = await File(
      '${tempDir.path}/image.png',
    ).writeAsBytes(bytes);

    PlatformFile platformFile = PlatformFile(
        name: "image.png", size: file.lengthSync(), path: file.path);
    FilePickerResult filePickerResult = FilePickerResult([platformFile]);
    return filePickerResu<
  });
}

 

С помощью этого кода я получаю такую ошибку:

[MethodChannelFilePicker] Исключение платформы: Исключение платформы(ошибка, Недопустимый аргумент: Экземпляр ‘FilePickerResult’, null, null)

Как это решить?