Dart / Flutter: использование общих методов setUp / tearDown среди наборов тестов - PullRequest
1 голос
/ 02 февраля 2020

Есть ли способ поделиться общими методами setUp / tearDown и другими вспомогательными методами среди тестов в Dart / Flutter? Обычно в других языках / фреймворках, таких как Java или Python, тесты определяются в классах, которые могут быть расширены, но то, как Dart подходит к тестированию с использованием функций внутри основного метода, вызывает у меня недоумение. Например, я тестирую методы io, у меня есть следующий фрагмент кода в моем тесте:

  Directory tempDir;

  setUp(() async {
    tempDir = await Directory.systemTemp.createTemp();

    const MethodChannel('plugins.flutter.io/path_provider').setMockMethodCallHandler((MethodCall methodCall) async {
      if (methodCall.method == 'getApplicationDocumentsDirectory') {
        return tempDir.path;
      }
      return null;
    });
  });

  tearDown(() async {
    tempDir.delete(recursive: true);
  });

Если бы это был любой другой язык, я бы создал базовый класс или миксин с именем TempDirTestCase, в котором поместить код для создания / удаления временного каталога, тогда каждый набор, которому нужны такие функции, должен был бы просто наследовать от него ... но что я должен делать в dart / flutter, чтобы повторно использовать код и избежать копирования / вставить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...