Ключевые слова выделять стоит, это действительно помогает как-то лучше ориентироваться в описанном алгоритме (его псевдо-коде).
Нужно не только оставить ключевые слова на английском, но и вообще переводить на русский разве что комментарии и описания входа-входа алгоритма. Как уже писали, конструкции вида «for всех» выглядят не айс :) Не даром в Кормене так и сделано (на русский переведены только комментарии и описания входа-входа).
Про окончания блоков — с одной стороны, с ними нагляднее видна структура кода, с другой — они занимают место, загромождают код, и без них код тоже выглядит нормально. Так что здесь на усмотрение :)
Если вы говорите об Apache Wicket, то это инструмент для совсем других целей. Он предназначен для разработки веб-приложений, а здесь мы говорим о тестировании веб-приложений.
Роман, разница в том, что вы описали, как эти идеи можно реализовать самому, а мы предлагаем решение, которое можно подключить и сразу использовать в своем проекте. Что касается внутреннего устройства, то вы предлагаете делать несколько иначе, чем сделали мы (на мой взгляд, не так удобно).
К тому же, возможности фреймворка HTML Elements не заканчиваются на описанных здесь. О том, что еще можно делать с его помощью, мы напишем в следующих постах.
Идея похожа, но реализовали вы данный подход все-таки не полностью.
У вас page-объекты и блоки используются только для отделения данных, используемых для нахождения элементов, от тестовых сценариев. Это упростит жизнь в случае изменений в верстке, но вам все равно придется в каждом тесте описывать всю цепочку элементарных шагов сценария. То есть для формы авторизации в тестовом сценарии вместо простого authorizationForm.login(login, password) у вас будет: ввести «name» в поле «логин», ввести «passwd» в поле «пароль» и кликнуть на кнопку «войти».
На самом же деле идея паттерна Page Object стостит в том, чтобы выделить полностью всю логику взаимодействия со страницей отдельно и инкапсулировать её в соответсвующем классе. А мы в этом посте предлагаем идти дальше: разделять страницу на блоки и инкасулировать логику взаимодействия на уровне блоков, чтобы один и тот же блок было удобно переиспользовать во многих page-объектах.
Information
Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
К тому же, возможности фреймворка HTML Elements не заканчиваются на описанных здесь. О том, что еще можно делать с его помощью, мы напишем в следующих постах.
У вас page-объекты и блоки используются только для отделения данных, используемых для нахождения элементов, от тестовых сценариев. Это упростит жизнь в случае изменений в верстке, но вам все равно придется в каждом тесте описывать всю цепочку элементарных шагов сценария. То есть для формы авторизации в тестовом сценарии вместо простого
authorizationForm.login(login, password)
у вас будет: ввести «name» в поле «логин», ввести «passwd» в поле «пароль» и кликнуть на кнопку «войти».На самом же деле идея паттерна Page Object стостит в том, чтобы выделить полностью всю логику взаимодействия со страницей отдельно и инкапсулировать её в соответсвующем классе. А мы в этом посте предлагаем идти дальше: разделять страницу на блоки и инкасулировать логику взаимодействия на уровне блоков, чтобы один и тот же блок было удобно переиспользовать во многих page-объектах.