Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void assertFilterActive() { $("#filters>li>.selected").shouldHave(exactText("Active")); }
- /*
- форматирование кода в этом методе и еще нескольких - не стандартное
- в IntelIJ Idea
- выдели код
- в меню(верхнем) - выбери пункт - Code->Reformat code
- советую завести привычку - в конце работы - обязательно форматировать код
- вероятнее всего, ты будешь работать в команде, и твой код будут смотреть другие специалисты
- им проще смотреть на стандартно отформатированный код (как правило)
- иногда у команды есть свои правила форматирования, которые чуть отличаться от стандартных.
- Если все сделано по уму, то у всех членов команды в IntelIJ Idea именно так и настроено форматирование кода.
- Т е - все равно - привычка реформатировать код - нужна
- https://www.jetbrains.com/help/idea/2016.3/reformatting-source-code.html
- но это - не самое главное
- а главное - такие проверки тебе не нужны в тестах Acceptance UI Testing уровня
- В видео Якова, которое ты уже видел,
- https://drive.google.com/file/d/0B8hgIBw8-V-AUDhxWDg1YmYxM3c/view
- Примерно с 58-ой минуты до 01:04 примерно - об этом есть
- Такая проверка - это больше проверка User Interface, а не функциональности
- На уровне Acceptance UI Testing - нужно отдавать предпочтение именно функциональным проверкам
- Проверка, что выделена линка для перехода на Active фильтр = проверка стиля отображения этого элемента = проверка UI, а не функциональная проверка
- А вот проверка состояния списка тасок - как раз функциональная проверка, проверка логики работы приложения, причем - важной ее части, критичной с точки зрения логики этого приложения
- Это неверный подход =
- Убрать проверку состояния списка тасок после filterActive()
- И при этом использовать assertFilterActive()
- Т к мы проверили менее важное, и не проверили - гораздо более важное
- На нашем уровне тестирования - нужно сосредоточиться именно на проверках логики работы приложения
- */
- ******************************
- private void findTaskThenDoubleClick(String fromTaskText){
- tasks.find(exactText(fromTaskText)).doubleClick();
- }
- private void edit(String fromTaskText, String toTaskText) {
- findTaskThenDoubleClick(fromTaskText);
- tasks.findBy(cssClass("editing")).find(".edit").setValue(toTaskText).pressEnter();
- }
- private void startEditThenCancel(String fromTaskText, String toTaskText) {
- findTaskThenDoubleClick(fromTaskText);
- tasks.findBy(cssClass("editing")).find(".edit").pressEscape();
- }
- /*
- в чем суть этого действия - startEditThenCancel
- мы уже вввели ноый текст
- и нажали Escape
- и, несмотря на введенный новый текст, остались со старым текстом = отменили редактирование
- а при такой реализации, как у тебя, даже если Enter нажать = текст таски не изменится
- потому что мы его и не меняли
- это мы должны делать и при выполнении startEditThenCancel:
- tasks.findBy(cssClass("editing")).find(".edit").setValue(toTaskText)
- значит = это тоже повторяющееся действие
- Верни ввод нового текста - в startEditThenCancel
- И в метод, который будет выполнять общие действия - включи все общие действия
- и пусть метод возвращает SelenideElement = элемент, в котором вводили новый текст
- это нужно - чтобы для этого элемента - далее вызвать pressEnter() или pressEscape();
- получишь
- */
- private void startEdit(String fromTaskText, String toTaskText){
- tasks.find(exactText(fromTaskText)).doubleClick();
- return tasks.findBy(cssClass("editing")).find(".edit").setValue(toTaskText);
- }
- private void edit(String fromTaskText, String toTaskText) {
- startEdit(fromTaskText, toTaskText).pressEnter();
- }
- ...
- /*
- метод элемента(SelenideElement) setValue - возвращает этот же элемент
- потому - мы смогли написать вот так - return tasks.findBy(cssClass("editing")).find(".edit").setValue(toTaskText);
- зажми ctrl и наведи курсор мыши на setValue - увидишь сигнатуру метода
- такой прием поможет тебе понять, как построить свой код, как использовать тот или иной метод
- */
- **********************************************
Advertisement
Add Comment
Please, Sign In to add comment