Я занимаюсь внедрением тестов графического интерфейса с использованием Calabash. В The Cucumber Book подчеркивается, что сценарии должны сами настраивать тестовые данные, локально, предпочтительно использовать библиотеки, такие как factory_girl. Этот вопрос касается производительности, чистоты и управляемости тестирования приложений Android и iOS с помощью Calabash.
Преимущество таких инструментов, как factory_girl
, заключается в том, что тесты должны быть менее хрупкими и что тестовые данные могут быть созданы / вставлены без использования графического интерфейса, что значительно ускоряет тесты (что делает их более ценными для разработчиков). Кроме того, каждый scenario
должен быть независимым от всех других сценариев, чтобы не требовалось, чтобы сценарий A
запускался до B
, если B
должен работать правильно. Это позволяет разработчикам запускать только один сценарий.
Это кажется разумным для программ, которые выполняются локально, где, например, можно получить прямой доступ к базе данных веб-службы, так что можно вставить тестовые данные. Однако как тестировщик вставляет данные в программы, которые работают на другом устройстве (эмулятор, симулятор, настоящий телефон).
В частности, как можно управлять тестовыми данными, вероятно, при работе с целевым устройством iOS и Android? Я испытываю искушение использовать Set of Fixture Data
, как описано в The Cucumber Book
, однако они явно говорят, что этого следует избегать.
Я спрашиваю, потому что приложение, которое я создаю, имеет много настроек, прежде чем пользователь сможет войти в главное представление приложения. Пользователю необходимо:
Регистрация, которая состоит из нескольких этапов:
A. Нажмите "Зарегистрироваться"
Б. Примите условия
C. Ссылка на сторонний сервис (несколько шагов)
D. Введите данные пользователя (имя, ...)
E. Нажмите кнопку «Зарегистрироваться».
F. Подтверждение адреса электронной почты путем нажатия ссылки в отправленном электронном письме.
Войдите в систему, используя только что созданного пользователя
- Синхронизировать данные с сервером
Как видите, если каждый сценарий должен работать из чистого состояния, то просто переход к правильному представлению в приложении может быть потребителем в реальном времени. Эти шаги необходимо выполнить почти для всех сценариев. Я хотел бы иметь возможность начать с требуемого состояния и начать с правильного представления. Как это достигается для iOS и Android с помощью Calabash?