Как стать автором
Обновить

Комментарии 10

Недавно сам задумывался о подобном и описал реализацию данного подхода в Codeception.
codeception.com/10-30-2012/pro-tips-1.html

С помощью трейтов в PHP 5.4 мы можем подмешивать общие элементы во все страницы.
Идея похожа, но реализовали вы данный подход все-таки не полностью.
У вас page-объекты и блоки используются только для отделения данных, используемых для нахождения элементов, от тестовых сценариев. Это упростит жизнь в случае изменений в верстке, но вам все равно придется в каждом тесте описывать всю цепочку элементарных шагов сценария. То есть для формы авторизации в тестовом сценарии вместо простого authorizationForm.login(login, password) у вас будет: ввести «name» в поле «логин», ввести «passwd» в поле «пароль» и кликнуть на кнопку «войти».

На самом же деле идея паттерна Page Object стостит в том, чтобы выделить полностью всю логику взаимодействия со страницей отдельно и инкапсулировать её в соответсвующем классе. А мы в этом посте предлагаем идти дальше: разделять страницу на блоки и инкасулировать логику взаимодействия на уровне блоков, чтобы один и тот же блок было удобно переиспользовать во многих page-объектах.
Спасибо. Учту, дополню )
Роман, разница в том, что вы описали, как эти идеи можно реализовать самому, а мы предлагаем решение, которое можно подключить и сразу использовать в своем проекте. Что касается внутреннего устройства, то вы предлагаете делать несколько иначе, чем сделали мы (на мой взгляд, не так удобно).

К тому же, возможности фреймворка HTML Elements не заканчиваются на описанных здесь. О том, что еще можно делать с его помощью, мы напишем в следующих постах.
Спасибо за информацию. Мы тоже пришли к инкапсулированию повторяющихся объектов в классы точно таким же образом, как в вашем фреймворке (правда у нас C# а не Java). Существенно облегчает разработку. За открытость вам большой плюс.
Мне это напоминает Wicket. В чем принципиальные отличия?
Если вы говорите об Apache Wicket, то это инструмент для совсем других целей. Он предназначен для разработки веб-приложений, а здесь мы говорим о тестировании веб-приложений.
спасибо.
стоило упомянуть, что используете jdk7, на с jdk6 не заработало.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.