Есть ли способ поделиться общими методами 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, чтобы повторно использовать код и избежать копирования / вставить?