#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)
Как это решить?