gpt4 book ai didi

flutter - 如何在 Dart 中模拟 File 实例

转载 作者:行者123 更新时间:2023-12-05 04:54:13 30 4
gpt4 key购买 nike

我想模拟 file.writeAsBytes 方法,但我不知道该怎么做。

注意:我不打算在测试中保存文件,只是覆盖该方法,以便我可以获取路径列表。

有没有人遇到过这种情况?

我的代码是

class ShareHelper {

static Future<List<String>> createFilesFromString(
List<FileShare> files) async =>
Future.wait(
files.map((fileShare) => _createFileFromString(fileShare)).toList());

static Future<String> _createFileFromString(FileShare fileShare) async {
final str = fileShare.base64.split(',');
Uint8List bytes = base64.decode(str[1]);
String dir = (await getTemporaryDirectory()).path;

final fileName = _createFileName(fileShare.name);

File file = File(
"$dir/" + fileName);
await file.writeAsBytes(bytes);
return file.path;
}
}

我的单元测试:

    test('Deve compartilhar os arquivos', () async {
PathProviderPlatform.instance = MockPathProviderPlatform();

final files = [
FileShare(name: 'Teste/A', base64: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...'),
];

final paths = await ShareHelper.createFilesFromString(files);
expect(paths, []);
});

});

最佳答案

使用Mockito ` 模拟包,因此您可以轻松地模拟文件并使用假响应覆盖所需的方法。

  class MockFile extends Mock implements File {
@override
Future<File> writeAsBytes(List<int> bytes, {FileMode mode = FileMode.write, bool flush = false}) {
// TODO: implement writeAsBytes
throw UnimplementedError();
}
}

关于flutter - 如何在 Dart 中模拟 File 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65830661/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com