Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ua;
- import com.codeborne.selenide.CollectionCondition;
- import org.junit.Test;
- import static com.codeborne.selenide.Condition.exactText;
- import static com.codeborne.selenide.Selectors.byText;
- import static com.codeborne.selenide.Selenide.*;
- import static com.codeborne.selenide.CollectionCondition.*;
- public class TodoMVCTest {
- @Test
- public void testUserFunctionality(){ // сильно абстрактное имя... можно лучше придумать... там в FAQ были подсказки...
- open("https://todomvc4tasj.herokuapp.com/");
- $("#new-todo").setValue("task1").pressEnter();
- $("#new-todo").setValue("task2").pressEnter();
- $("#new-todo").setValue("task3").pressEnter();
- $("#new-todo").setValue("task4").pressEnter();
- $$("#todo-list li").shouldHave(exactTexts("task1", "task2", "task3", "task4"));
- $(byText("task2")).hover();
- $("#todo-list :nth-of-type(2) button.destroy").click();
- /*
- button лишний
- всегда стремись к лаконичности не ухудшая читабельности....
- стремис к консистентности...
- ты везде представляешь ниже задачи как #todo-list li
- это хороший локатор...
- он читабельный и понятный - он буквально говорит: списка задач все айтемы
- а вот этот #todo-list :nth-of-type(2)
- как будтно с дыркой внутри...
- лучше: #todo-list li:nth-of-type(2)
- четко видно из каких элементов второй нужен...
- и что бы неплодить локаторов разных... я бы предыдущий написал как:
- $("#todo-list li:nth-of-type(2)").hover();
- хотя он стал длинее - но сразу глазами видно что речь идет об одной и той же задаче - второй
- что сначала мы на нее наводим мышку а потом уже находим кнопку внутри и кликаем по ней
- */
- $("#todo-list li").shouldNotHave(exactText("task2"));
- /*
- этой проверки мало... а что если еще какая то задача удалилась?
- лучше всегда проверять "то что осталось... "
- */
- $("#todo-list :last-child .toggle").click();
- /*
- я бы уже везде юзал nth-of-type для менее разношонстности... чем все более "одинаково" тем лучше ;)
- ибо проще
- */
- $("button#clear-completed").click();
- /*
- снова... этот локатор можно и проще записать
- */
- $("#todo-list li").shouldNotHave(exactText("task4"));
- $("#toggle-all").click();
- $("button#clear-completed").click();
- $$("#todo-list li").shouldBe(empty);
- }
- }
- // по вот этим длинным локаторам - их можно еще красивее записать, но это будет позже. потом покажу как. на видео)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement