Здравствуйте, сообщество!
В процессе изучения calabash-cucumber для тестирования мобильных приложений возник вопрос как работать с объектами. Для тестирования взял приложение iOS, и вот на одном из Активити есть 4 вопроса и 3 ответа на каждый вопрос. Для прохождения на следующее Активити нужно ответь на эти вопросы, а ответ это отметка варианта напротив вопроса. Рисунок примерно такой получается:
|1|0|0| или |1|0|0|
|0|1|0| или |1|0|0|
|0|0|1| или |1|0|0|
|1|0|0| или |0|0|1|
1 - выбранный вариант (чек-бокс); 0 - соответсвенно не выбранное поле. Привязки к кнопке нет - ни ID, ни текста. Приходится находить ее по координатам. И вот вопрос: как задать объект(кнопка) с заданными координатами, а потом передавать ему метод (например object.touch(x, y)) в теле шага. Возник интерес проверить все комбинации, а их 81(в шагах это очень много) - с объектами было бы легче(можно счетчик для перебора написать). Вот мои попытки, но они не работают:
class Tapper
def tap(x, y)
perform_action('click_on_screen', x, y)
#or touch(nil, {:offset => {:x => x.to_i, :y => y.to_i}})
end
end
Then /^I touch on screen $/ do |x, y|
@answer_1_1 = Tapper.new
@answer_1_1.tap(802, 153)
end
Результат или:
undefined step
либо
undefined method 'perform_action' for Object