如何在flutter测试中修复async / await错误?

问题描述 投票:0回答:2

我正在尝试为我的扑腾App编写测试。我正在编写测试的函数返回一个Future,因此我正在使用await。

但是只要使用任何await语句,我就会得到MissingPluginException错误。

我尝试更改依赖版本,但它没有帮助。无法在GitHub上找到有关此问题的Flutter Issues或StackOverFlow。

check_app_version_test.dart

import 'package:flutter_test/flutter_test.dart';

import '../home.dart';

void main() {
  test('checkAppVersion', () async {
    expect(await checkAppVersionTest(true), true);
  });
}

home.dart

String currentVersionString = await GetVersion.projectVersion;
Version currentVersion = Version.parse(currentVersionString);

Future<bool> checkAppVersionTest([bool test, Version latestVersion]) async {

...
  if (currentVersion < latestVersion) {
    updateRequired = true;
  }
...
return updateRequired

}

预计工作正常。

得到错误:

MissingPluginException(在通道plugins.flutter.io/package_info上找不到方法getAll的实现) 包:flutter / src / services / platform_channel.dart 300:7 MethodChannel.invokeMethod =====异步间隙========================== = dart:async _AsyncAwaitCompleter.completeError包:flutter / src / services / platform_channel.dart MethodChannel.invokeMethod =====异步间隙=========================== dart:async _asyncThenWrapperHelper包:flutter / src / services / platform_channel 。镖 MethodChannel.invokeMethod包:package_info / package_info.dart 38:17 PackageInfo.fromPlatform

flutter async-await flutter-dependencies
2个回答
0
投票

看起来你只需要安装你的pod。 打开终端并导航到flutter目录。 CD通过cd iOS/进入iOS目录,然后运行pod install

现在你应该可以正常运行项目了。


0
投票

只需终止应用程序并热启动应用程序。当您添加依赖项时,需要特定于平台的代码才能通过平台通道运行。您必须通过终止当前的应用程序来重新启动应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.