Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ToDoMVCTest {
- @Test
- public void tasksLifeCycle() {
- open("https://todomvc4tasj.herokuapp.com/");
- add("1");
- edit("1", "1 edited");
- toggle("1 edited");
- assertVisibleTasksAre("1 edited");
- /*
- отличный кусочек
- и неявные проверки использованы удачно
- и заканчиваем правильно - удастся оттестить фильтеринг точно
- */
- filterActive();
- assertVisibleTasksEmpty();
- add("2");
- cancelEditWithEsc("2", "2 edited");
- toggle("2");
- /*
- complete - мы уже покрыли на all. Повторяться не нужно
- complete all - мы еще не покрывали, разумно покрыть
- только учти, что понадобится проверка перед toggleAll
- т к toggleAll - не проверяет состояние списка
- ну и после действия toggle("2"); - не хватает проверки
- */
- filterCompleted();
- /*
- тут - у нас 2 видимых таски - и поэтому операция toggle("1 edited");
- не проверит состояние списка полностью
- нужна проверка состояния списка тасок
- */
- toggle("1 edited");
- assertVisibleTasksAre("2");
- clearCompleted();
- assertVisibleTasksEmpty();
- filterAll();
- /*
- при таком варианте - когда следующая операция toggleAll();
- нужна проверка состояния списка тасок
- но - выше писала - где лучше покрыть toggleAll();
- значит - отсюда toggleAll(); уйдет
- тем более - что тут уже сложно эту операцию проверить достаточно точно
- а вот операцию delete("1 edited"); - можно считать неявной проверкой после filterAll();
- а можно и уточнить - следать проверку после filterAll();
- тут вопрос спорный)
- все же filterAll(); - это работа не с единственной таской
- */
- toggleAll();
- delete("1 edited");
- assertVisibleTasksEmpty();
- }
- ****************************************************
- public void edit(String oldTaskText, String newTaskText) {
- tasks.findBy(exactText(oldTaskText)).doubleClick();
- tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText).pressEnter();
- }
- private void cancelEditWithEsc(String oldTaskText, String newTaskText) {
- tasks.findBy(exactText(oldTaskText)).doubleClick();
- tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText).sendKeys(Keys.ESCAPE);
- }
- /*
- вместо sendKeys(Keys.ESCAPE) - можно применять pressEscape()
- методы очень похожи
- отличаются только .pressEnter() или pressEscape()
- реализуй метод xxx возвращающий SelenideElement = элемент, в котором мы вводили новый текст
- с общим для этих методов кодом
- и потом будешь использовать
- xxx(....).pressEscape()
- xxx(...).pressEnter()
- подумай про название этого метода xxx - это начало/старт редактирования
- */
- *************************************
- private void assertVisibleTasksAre(String... taskTexts) {
- tasks.filter(visible).shouldHave(exactTexts(taskTexts));
- }
- private void assertVisibleTasksEmpty() {
- tasks.filter(visible).shouldBe(empty);
- }
- /*
- раз используешь лишь эти 2 ассерта для проверки состояния списка тасок
- то можно из названия методов - убрать уточнение о Visible
- в видео Якова https://drive.google.com/file/d/0B8hgIBw8-V-AdGxxU1R3enl1RzQ/view?ts=567ab8d7
- было про это
- да, еще желательно в рамках этого е2е единожды покрыть и проверку счетчика активных тасок
- в предыдущем ревью было про это
- */
Advertisement
Add Comment
Please, Sign In to add comment