Advertisement
yashaka

Untitled

Feb 23rd, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. package ua;
  2.  
  3. import com.codeborne.selenide.CollectionCondition;
  4. import org.junit.Test;
  5.  
  6. import static com.codeborne.selenide.Condition.exactText;
  7. import static com.codeborne.selenide.Selectors.byText;
  8. import static com.codeborne.selenide.Selenide.*;
  9. import static com.codeborne.selenide.CollectionCondition.*;
  10.  
  11. public class TodoMVCTest {
  12.  
  13. @Test
  14. public void testUserFunctionality(){ // сильно абстрактное имя... можно лучше придумать... там в FAQ были подсказки...
  15. open("https://todomvc4tasj.herokuapp.com/");
  16. $("#new-todo").setValue("task1").pressEnter();
  17. $("#new-todo").setValue("task2").pressEnter();
  18. $("#new-todo").setValue("task3").pressEnter();
  19. $("#new-todo").setValue("task4").pressEnter();
  20. $$("#todo-list li").shouldHave(exactTexts("task1", "task2", "task3", "task4"));
  21.  
  22. $(byText("task2")).hover();
  23. $("#todo-list :nth-of-type(2) button.destroy").click();
  24. /*
  25. button лишний
  26. всегда стремись к лаконичности не ухудшая читабельности....
  27.  
  28. стремис к консистентности...
  29. ты везде представляешь ниже задачи как #todo-list li
  30. это хороший локатор...
  31. он читабельный и понятный - он буквально говорит: списка задач все айтемы
  32. а вот этот #todo-list :nth-of-type(2)
  33. как будтно с дыркой внутри...
  34. лучше: #todo-list li:nth-of-type(2)
  35. четко видно из каких элементов второй нужен...
  36.  
  37. и что бы неплодить локаторов разных... я бы предыдущий написал как:
  38. $("#todo-list li:nth-of-type(2)").hover();
  39. хотя он стал длинее - но сразу глазами видно что речь идет об одной и той же задаче - второй
  40. что сначала мы на нее наводим мышку а потом уже находим кнопку внутри и кликаем по ней
  41. */
  42. $("#todo-list li").shouldNotHave(exactText("task2"));
  43. /*
  44. этой проверки мало... а что если еще какая то задача удалилась?
  45. лучше всегда проверять "то что осталось... "
  46. */
  47.  
  48. $("#todo-list :last-child .toggle").click();
  49. /*
  50. я бы уже везде юзал nth-of-type для менее разношонстности... чем все более "одинаково" тем лучше ;)
  51. ибо проще
  52. */
  53. $("button#clear-completed").click();
  54. /*
  55. снова... этот локатор можно и проще записать
  56. */
  57. $("#todo-list li").shouldNotHave(exactText("task4"));
  58.  
  59. $("#toggle-all").click();
  60. $("button#clear-completed").click();
  61. $$("#todo-list li").shouldBe(empty);
  62.  
  63. }
  64. }
  65.  
  66. // по вот этим длинным локаторам - их можно еще красивее записать, но это будет позже. потом покажу как. на видео)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement