Интеграционный тест Flutter - как загрузить файл JSON? - PullRequest
2 голосов
/ 29 марта 2019

Я пишу интеграционный тест Flutter с фиктивным клиентом, который возвращает ответ JSON для каждой конечной точки REST, которую вызывает мое приложение. Эти ответы JSON хранятся в отдельных файлах JSON, но я не могу получить доступ к файлам во время выполнения теста.

Я попытался загрузить файлы, создав и прочитав новый объект файла. Flutter: как загрузить файл для тестирования , но он никогда не может найти файл. Я также попытался поместить мои файлы JSON в ресурсы. Это сработало, но также привело к связыванию тестовых файлов JSON при сборке APK.

Упрощенный клиент Mock:

MockClient integrationMockClient = MockClient((request) async {
  switch (request.url.toString()) {
    case 'https://staging.company.com/api/123':
      return Response(readJsonfile('myJsonFile.json'), 200);

Основная функция упрощенного интеграционного теста - проходит фиктивный клиент. test_driver/app.dart

void main() async {
  enableFlutterDriverExtension();
  final app = await initializeApp(
    integrationMockClient
  );
  runApp(app);
}

Когда я пытаюсь прочитать файл, он никогда не может его найти. Возможно, потому что flutterDriver запускает «настоящее приложение» без доступа к файлам, хранящимся в тестовых каталогах.

Как получить доступ к файлу JSON из интеграционного теста, не связывая его с рабочим кодом / APK?

Спасибо!

...