Я пишу интеграционный тест 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?
Спасибо!