Детоксикация: лучший способ отправить параметры в приложение

#react-native #e2e-testing #detox

#react-native #e2e-тестирование #детоксикация

Вопрос:

Я внедрил Detox для тестов e2e в своем приложении react-native, у меня есть 2 теста:

  1. Запуск -> Не зарегистрирован -> отобразить форму входа -> Главный экран
  2. Запуск -> Регистрация -> Главный экран

данные аутентификации хранятся в AsyncStorage, я реализовал макет store.e2e.js использование Repackager. Хорошо, но мне нужно запустить приложение с двумя разными наборами хранилищ данных: один пустой для test1, а другой с именем пользователя / паролем для test2.

Поэтому я добавляю хак с launchApp параметром url или device.sendUrl , уловленный Store mock при инициализации с помощью Linking.addEventListener('url', callback) . Хорошо, проблема решена. Но это заставило меня активировать глубокую привязку на Android и iOS, чего я не хочу в своем приложении… Сделал специальный случай в коде только для тестирования, это плохо.

Я понимаю, что это хорошо известная проблема, и для этого был создан repackager: https://github.com/wix/detox/issues/91

Но как ввести некоторые параметры в приложение при запуске для конкретных тестов, возможно ли это? Какова ваша лучшая практика для решения такой проблемы?

Ответ №1:

На iOS вы можете отправить аргумент запуска своему процессу, который вы можете запросить во время выполнения. Вы также можете создать макет файла для вашего JS, где вместо замены вашей логики вы просто устанавливаете некоторую переменную для хранения значения, которое вы хотите передать, а затем загружаете свою обычную логику.