julia_v_iluhina

Untitled

Sep 17th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.63 KB | None | 0 0
  1. public class TodoMVCTest {
  2.  
  3.     @Test
  4.     public void test(){
  5.     /*
  6.         Для имени тест-метода - правильнее найти вариант поточнее)
  7.  
  8.         в faq - есть про это (см весь раздел)
  9.         особенно - вот это
  10.         https://docs.google.com/document/d/10qSwWTQ6pGfVZSwOes-1QSmdflMiGD2U_y53VHq2m20/edit#bookmark=id.txqig9rkgybo
  11.  
  12.     */
  13.         open("https://todomvc4tasj.herokuapp.com/");
  14.  
  15.         // Create tasks
  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(size(4));
  21.         $$("#todo-list li").shouldHave(exactTexts("task1", "task2", "task3", "task4"));
  22.         /*
  23.             по проверкам
  24.             проверка по кондишену exactTexts - обеспечивает проверку
  25.             количества, порядка и самих текстов
  26.                 количество элементов должно соответствовать количеству переданных текстов
  27.                 порядок текстов элементов - должен соответствовать порядку переданных текстов
  28.                 и тексты - проверяются на равенство
  29.             потому - проверка для кондишена size - тут избыточна
  30.  
  31.             по комментариям к коду
  32.             пока у нас код - не очень наглядный
  33.             потому - комментарии уместны
  34.             далее - мы будем код улучшать
  35.             и практически во всех случаях - код будет таким, что комментарии не потребуются
  36.             а пока - ок. комментарии уместны и полезны
  37.         */
  38.  
  39.         // Delete task2
  40.         $$("#todo-list li").get(1).hover();
  41.         $$("#todo-list li div button").get(1).click();
  42.         /*
  43.             селектор "#todo-list li div button" - можно упростить и сделать нагляднее
  44.             div - можно опустить
  45.             вместо button - для того же элемента пожно подобрать вариант понагляднее
  46.             посмотри на атрибуты этой кнопки
  47.         */
  48.         $$("#todo-list li").shouldHave(exactTexts("task1","task3", "task4"));
  49.  
  50.         // Mark task4 as completed
  51.         $$("#todo-list li div input").get(2).click();
  52.         /*
  53.             тут - аналогичто - селектор можно упростить и сделать нагляднее
  54.             div - можно опустить
  55.             вместо input - для того же элемента пожно подобрать вариант понагляднее
  56.         */
  57.         assertEquals("completed", $$("#todo-list li").get(2).getAttribute("class"));
  58.         /*
  59.             эту проверку надо переписать
  60.             первое - лучше использовать ждущие проверки
  61.             assertEquals - не ждет
  62.             ждущие проверки в Selenide обеспечивают should-методы (они есть и у элемента, и у коллекции)
  63.             выше ты уже реализовывала подобные ждущие проверки
  64.  
  65.             второе - нам надо проверить
  66.                 не - состояние единственной таски
  67.                 а - состояние списка тасок в целом
  68.  
  69.             судя по реализованной проверке - ты хотела убедиться - что у таски теперь есть класс completed
  70.             вариант получше - проверить
  71.                 что в коллекции тасок с классом completed
  72.                 есть такие-то таски (это ты выше уже реализовывала - использовала проверку кондишена exactTexts)
  73.             так - мы проверяем состояние списка в целом - насчет класса completed,
  74.             причем - проверяем состояние закомпличеных тасок максимально точно (количество, порядок, тексты)
  75.  
  76.             на самом деле - мы еще вернемся к проверке после закомпличивания таски...
  77.             немного позже)
  78.  
  79.             пока  - будет ок - уточнить проверку, как я описала
  80.         */
  81.  
  82.         // Mark task4 as active
  83.         $$("#todo-list li div input").get(2).click();
  84.         assertEquals("active", $$("#todo-list li").get(2).getAttribute("class"));
  85.         /*
  86.             согласно задания - требовалось другое
  87.             clear completed - это вот эта операция http://joxi.ru/vAW36KgskWlaKA
  88.             кнопка видима - если есть хотя бы одна закомпличеная таска
  89.             по нажатию на кнопку - удаляются закомпличеные таски
  90.         */
  91.  
  92.         // Mark all as completed
  93.         $("#toggle-all").click();
  94.         assertEquals("completed", $$("#todo-list li").get(0).getAttribute("class"));
  95.         assertEquals("completed", $$("#todo-list li").get(1).getAttribute("class"));
  96.         assertEquals("completed", $$("#todo-list li").get(2).getAttribute("class"));
  97.         /*
  98.             тут - аналогично - как после закомпличивания таски 4
  99.             достаточно одной ждущей проверки - для всех тасок с классом completed
  100.         */
  101.  
  102.         // Mark all as active
  103.         $("#toggle-all").click();
  104.         assertEquals("active", $$("#todo-list li").get(0).getAttribute("class"));
  105.         assertEquals("active", $$("#todo-list li").get(1).getAttribute("class"));
  106.         assertEquals("active", $$("#todo-list li").get(2).getAttribute("class"));
  107.         /*
  108.             тут согласно задания - нужно реализовать clear completed
  109.         */
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment