【发布时间】:2022-01-16 02:34:17
【问题描述】:
有一个question关于测试MethodChannel。在我将 Flutter 升级到 2.8 后,它接缝在通道中没有名为 setMockMethodCallHandler 的方法。
【问题讨论】:
标签: flutter flutter-test
有一个question关于测试MethodChannel。在我将 Flutter 升级到 2.8 后,它接缝在通道中没有名为 setMockMethodCallHandler 的方法。
【问题讨论】:
标签: flutter flutter-test
在重大更改doc 中,提到了new method:
// old code
myMethodChannel.setMockMethodCallHandler(...);
myMethodChannel.checkMockMethodCallHandler(...);
// new code
tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(myMethodChannel, ...);
tester.binding.defaultBinaryMessenger.checkMockMessageHandler(myMethodChannel, ...);
顺便说一句,Flutter 团队做motions 他们想在小部件测试而不是驱动测试中做更多的事情。
我们正在放弃flutter_driver,转而支持将flutter_test扩展到设备上。
以ImagePicker为例:
widgetTest('', (tester) async {
const channel = MethodChannel('plugins.flutter.io/image_picker');
tester.binding.defaultBinaryMessenger.setMockMethodCallHandler(
channel,
(MethodCall methodCall) => Future.value('some-image'),
);
});
【讨论】: