Как исправить ошибку async / await в тесте флаттера? - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь написать тест для моего приложения.Функция, для которой я пишу тест, возвращает Future, поэтому я использую await.

Но как только используется любой оператор await, я получаю ошибку MissingPluginException.

Я попытался изменить зависимостьверсия, но это не помогает.Не удалось найти что-либо на GitHub для проблем с флаттером или 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 (Не реализована реализация метода getAll на канале plugins.flutter.io/package_info)
пакет: flutter / src / services / platform_channel.dart 300: 7 MethodChannel.invokeMethod ===== асинхронный пробел =================================== dart: async _AsyncAwaitCompleter.completeError package: flutter / src/services/platform_channel.dart
MethodChannel.invokeMethod ===== асинхронный пробел ======================================================= dart: async _asyncThenWrapperHelperпакет: flutter / src / services / platform_channel.dart
MethodChannel.invokeMethod пакет: package_info / package_info.dart 38:17 PackageInfo.fromPlatform

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Просто закройте приложение и перезапустите приложение.Как вы добавили зависимость, которая требует специфический для платформы код для запуска через канал платформы.Вы должны перезапустить приложение, прекратив текущее.

0 голосов
/ 10 апреля 2019

Похоже, вам просто нужно установить свои модули.
Откройте терминал и перейдите в каталог флаттера.
CD в ​​каталог iOS через cd iOS/ и затем запустите pod install

Теперь вы сможете нормально запустить проект.

...