Использую Ruby + Selenium + RSpec + page-object gem
Есть проблема с переиспользованием кода. Вернее сказать, не могу понять как сделать лучше.
На примере теста регистрации, варианты, которые вижу я:
(можно составить кейсы по работоспособности элементов, валидации полей кода подтверждения, пароля, отображения текста пользовательского соглашения и т.п.)
вариант 1. Привести систему к определенному состоянию, например, отображение попапа с пользовательским соглашением и формой ввода кода подтверждения. И, после получения попапа:
- писать кейсы на отображение пользовательского соглашения
- писать кейсы на валидацию кода подтверждения
вариант 2. В каждом кейсе приводить систему к определенному состоянию, например, к описанному выше. Этот вариант порождает большое количество кода, которое можно переиспользовать. Но есть проблема. Например, я пытаюсь вынести этот код в отдельные методы, создав класс User, но при вызове методов в spec, получаю ошибку RuntimeError: Unable to pick a platform for the provided browser or element
Не могу понять куда надо передать браузер. Когда не использовал гем page-object, не было таких проблем, но кода приходилось писать намного больше. Пожалуйста, подскажите, как лучше сделать и что почитать / посмотреть по теме. В доках по гему не нашел как исправить проблему.