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