Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- http://joxi.ru/n2YkKaGUjxpbXr
- /*
- таки ты меня игнорируешь)))
- вот этот пекедж - переименуй
- должен быть - pages
- причины - просты
- это - место в структуре для хранения пейджЕЙ
- сейчас пейдж - один,
- а когда появятся другие пейджи - не придется менять имя пекеджа
- а в целом по реализации пейджа - все ок уже
- только tasks - не стоило делать private
- т к будет нужно использовать эту переменную в проверках
- */
- *************************************
- @Test
- public void testCommonFlow() {
- /*
- лучше уточнить - чей это Flow
- testTasksCommonFlow
- */
- open("https://todomvc4tasj.herokuapp.com/");
- page.create("task1", "task2", "task3", "task4");
- assert $$("li[class=active]").size() == 4;
- /*
- сначала - как проверять
- проверки в Selenide -
- реализуй через вызов методов should... - для элементов или коллекций
- методы should... - реализуют ждущую проверку
- это важно - т к на момент вызова проверки - возможно не все догрузилоь на странице
- а should...-проверка - в рамках таймаута - будут последовательно выполняться
- проверки - до тех пор, пока
- проверка не пройдет или таймаут не закончится
- такой подход позволяет писать надежные тесты
- которые не зависят от особенностей загрузки страницы
- ну и даже в тех редких случаях, когда нужно что-то проверить
- но это что-то - не является свойством ни элемента, ни коллекции
- (например - проверить урл)
- то - лучше использовать jUnit-овский assert (assertEquals например)
- http://stackoverflow.com/questions/2966347/assert-vs-junit-assertions
- а - про необходимое ожидание - придется заботиться самостоятельно
- тут, в этом задании - нам нужны should...-проверки
- теперь - что проверять
- судя по реализованной проверке
- ты намеревался проверить - что в списке тасок - есть 4 таски с классом active
- если планируешь работать с тасками
- то - не надо тебе никаких новых независимых селекторов
- у тебя в пейдже уже есть переменная tasks
- вот ею и пользуйся
- такого рода проверку можно было бы переписать как
- page.tasks.filter(...).shouldHave(size(4));
- НО
- проверка размера списка тасок - это недостаточная проверка
- например, таски добавились, но не с теми текстами
- или не в том порядке
- есть кондишен - exactTexts
- он позволяет проверить количество, порядок, и сами тексты
- такая проверка - будет максимально точной
- еще одно НО
- в данном случае - проверять только таски с классом active -
- значит проверить не весь список
- а только таски с таким-то классом
- ведь может быть - что помимо тасок с классом active - насоздавались
- какие-то другие таски
- тут - логичнее без отбора по классу active
- проверить тексты всех тасок
- выше писала - как это сделать, используя одну проверку
- */
- page.delete("task2");
- assert $$("li[class=active]").size() == 3;
- page.toggle("task4");
- page.clearCompleted();
- assert $$("li[class=active]").size() == 2;
- page.toggleAll();
- page.clearCompleted();
- assert $$("li[class=active]").size() == 0;
- /*
- в целом - все проверки - на нужных местах
- замени проверки - на ждущие+точные проверки
- будет достаточно проверять список тасок
- без отборов по классу active
- во всех случаях, кроме последнего - тебе подойдет кондишен exactTexts
- в последнем - можно использовать кондишен size,
- а нагляднее будет - использовать кондишен empty
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment