Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class TodoMVCTest {
- @Test
- public void test(){
- /*
- Для имени тест-метода - правильнее найти вариант поточнее)
- в faq - есть про это (см весь раздел)
- особенно - вот это
- https://docs.google.com/document/d/10qSwWTQ6pGfVZSwOes-1QSmdflMiGD2U_y53VHq2m20/edit#bookmark=id.txqig9rkgybo
- */
- open("https://todomvc4tasj.herokuapp.com/");
- // Create tasks
- $("#new-todo").setValue("task1").pressEnter();
- $("#new-todo").setValue("task2").pressEnter();
- $("#new-todo").setValue("task3").pressEnter();
- $("#new-todo").setValue("task4").pressEnter();
- $$("#todo-list li").shouldHave(size(4));
- $$("#todo-list li").shouldHave(exactTexts("task1", "task2", "task3", "task4"));
- /*
- по проверкам
- проверка по кондишену exactTexts - обеспечивает проверку
- количества, порядка и самих текстов
- количество элементов должно соответствовать количеству переданных текстов
- порядок текстов элементов - должен соответствовать порядку переданных текстов
- и тексты - проверяются на равенство
- потому - проверка для кондишена size - тут избыточна
- по комментариям к коду
- пока у нас код - не очень наглядный
- потому - комментарии уместны
- далее - мы будем код улучшать
- и практически во всех случаях - код будет таким, что комментарии не потребуются
- а пока - ок. комментарии уместны и полезны
- */
- // Delete task2
- $$("#todo-list li").get(1).hover();
- $$("#todo-list li div button").get(1).click();
- /*
- селектор "#todo-list li div button" - можно упростить и сделать нагляднее
- div - можно опустить
- вместо button - для того же элемента пожно подобрать вариант понагляднее
- посмотри на атрибуты этой кнопки
- */
- $$("#todo-list li").shouldHave(exactTexts("task1","task3", "task4"));
- // Mark task4 as completed
- $$("#todo-list li div input").get(2).click();
- /*
- тут - аналогичто - селектор можно упростить и сделать нагляднее
- div - можно опустить
- вместо input - для того же элемента пожно подобрать вариант понагляднее
- */
- assertEquals("completed", $$("#todo-list li").get(2).getAttribute("class"));
- /*
- эту проверку надо переписать
- первое - лучше использовать ждущие проверки
- assertEquals - не ждет
- ждущие проверки в Selenide обеспечивают should-методы (они есть и у элемента, и у коллекции)
- выше ты уже реализовывала подобные ждущие проверки
- второе - нам надо проверить
- не - состояние единственной таски
- а - состояние списка тасок в целом
- судя по реализованной проверке - ты хотела убедиться - что у таски теперь есть класс completed
- вариант получше - проверить
- что в коллекции тасок с классом completed
- есть такие-то таски (это ты выше уже реализовывала - использовала проверку кондишена exactTexts)
- так - мы проверяем состояние списка в целом - насчет класса completed,
- причем - проверяем состояние закомпличеных тасок максимально точно (количество, порядок, тексты)
- на самом деле - мы еще вернемся к проверке после закомпличивания таски...
- немного позже)
- пока - будет ок - уточнить проверку, как я описала
- */
- // Mark task4 as active
- $$("#todo-list li div input").get(2).click();
- assertEquals("active", $$("#todo-list li").get(2).getAttribute("class"));
- /*
- согласно задания - требовалось другое
- clear completed - это вот эта операция http://joxi.ru/vAW36KgskWlaKA
- кнопка видима - если есть хотя бы одна закомпличеная таска
- по нажатию на кнопку - удаляются закомпличеные таски
- */
- // Mark all as completed
- $("#toggle-all").click();
- assertEquals("completed", $$("#todo-list li").get(0).getAttribute("class"));
- assertEquals("completed", $$("#todo-list li").get(1).getAttribute("class"));
- assertEquals("completed", $$("#todo-list li").get(2).getAttribute("class"));
- /*
- тут - аналогично - как после закомпличивания таски 4
- достаточно одной ждущей проверки - для всех тасок с классом completed
- */
- // Mark all as active
- $("#toggle-all").click();
- assertEquals("active", $$("#todo-list li").get(0).getAttribute("class"));
- assertEquals("active", $$("#todo-list li").get(1).getAttribute("class"));
- assertEquals("active", $$("#todo-list li").get(2).getAttribute("class"));
- /*
- тут согласно задания - нужно реализовать clear completed
- */
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment