我正在开发一个原生插件,并试图进行单元测试。所有单元测试都将在Dart中完成(无本机代码)。
Flutter有一个测试示例,说明如何使用setMockomeodCallHandler
测试从Dart到本机的调用方法通道。
问题是,我还没有找到测试从本机调用Dart的方法通道的方法,该Dart使用<code>setMethodCallHandler</code>来处理本机调用。
下面是一个示例
// main.dart
class Plugin {
static MethodChannel _channel = const MethodChannel('plugin');
Plugin() {
_channel.setMethodCallHandler((call) async {
print("called from native: ${call.method}");
});
}
}
// tests/main_test.dart
void main() {
const MethodChannel _channel = MethodChannel('core.super_router');
Plugin plugin;
setUp(() async {
TestWidgetsFlutterBinding.ensureInitialized();
plugin = Plugin();
});
test("call from native", () async {
_channel.invokeMethod("something");
// This call can't reach the handler in the Plugin
// And there is no method like mockInvokeMethod
});
}
下面的片段基于西里尔胡的方法,非常适合我。
test("Listening device", () async {
ServicesBinding.instance.defaultBinaryMessenger.handlePlatformMessage(
'channnelName',
StandardMethodCodec().encodeMethodCall(
MethodCall('methodName', '{"result":true}')),(ByteData data){});
...
});
将颤振集成到主机应用程序(docs)时,有几种方法可以实现,其中一种(最简单的)方法是通过颤振活动类在新活动中打开颤振。这样地: 传统上,对于Flutter侧的Android风格窗口,我们创建带有后退按钮的AppBar。 此AppBar后退按钮和Android系统后退按钮的行为必须相同:按下后退按钮时,前台活动必须关闭(完成)。 目前系统后退按钮确实关闭了,但如何从flutters AppBar后
在android Studio上使用flutter构建我的应用程序,当我上传我的应用程序包(通过制作时,会弹出消息: 我已经尝试了目前在线的所有解决方案来解决这个问题。以下各项的每种组合: 这些解决方案: https://github.com/flutter/flutter/issues/60240#issuecomment-894683946 https://github.com/flutter
目前我正在尝试颤振网页,我需要在颤振主频道工作。但是,后来我需要继续我的其他项目。在他们身上,我正在研究颤振稳定通道。 但是,每当我使用命令“flutter channel stable”或“fluter channel master”切换我的flutter通道时,它每次都会重新下载sdk和其他工具。 目前,我已经下载了稳定的颤振sdk和稳定的dart sdk。 我已将它们移动到“FlutterS
如何删除Flutter中的调试横幅? 我正在使用,我希望屏幕截图上没有横幅。现在确实有了。 注意,emulator不支持配置文件和发布模式的
文件可以从相对于省道脚本文件的目录中读取,简单地称为。 但是,在IDE中运行的颤振测试无法读取该文件。 加载为资源(不是,因为我不想在应用程序中捆绑测试数据文件)在测试中也不起作用。 在flatter中读取文件的好方法是什么(对于命令行测试和IDE测试)? 运行非常快。然而,IntellijIDE内部的测试速度非常慢,但它可以设置调试断点并单步执行和查看变量。所以这两种测试都非常有用。
我在Dart类中有一个方法,它接受< code>BuildContext参数,如下所示: 我想测试该方法是否按预期工作: 当然,它不起作用,因为方法 需要一个参数 类型。此值在整个应用程序本身中都可用,但不确定在我的单元测试中从何处获取该值。