julia_v_iluhina

Untitled

Sep 19th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.06 KB | None | 0 0
  1. http://joxi.ru/n2YkKaGUjxpbXr
  2.  
  3. /*
  4.     таки ты меня игнорируешь)))
  5.  
  6.     вот этот пекедж - переименуй
  7.     должен быть - pages
  8.  
  9.     причины - просты
  10.     это - место в структуре для хранения пейджЕЙ
  11.     сейчас пейдж - один,
  12.     а когда появятся другие пейджи - не придется менять имя пекеджа
  13.  
  14.     а в целом по реализации пейджа - все ок уже
  15.  
  16.     только tasks - не стоило делать private
  17.     т к будет нужно использовать эту переменную в проверках
  18.  
  19. */
  20. *************************************
  21.  
  22.   @Test
  23.     public void testCommonFlow() {
  24.     /*
  25.         лучше уточнить - чей это Flow
  26.         testTasksCommonFlow
  27.     */
  28.  
  29.         open("https://todomvc4tasj.herokuapp.com/");
  30.  
  31.         page.create("task1", "task2", "task3", "task4");
  32.         assert $$("li[class=active]").size() == 4;
  33.         /*
  34.             сначала - как проверять
  35.                 проверки в Selenide -
  36.                 реализуй через вызов методов should...  - для элементов или коллекций
  37.  
  38.                 методы  should... - реализуют ждущую проверку
  39.                 это важно - т к на момент вызова проверки - возможно не все догрузилоь на странице
  40.  
  41.                 а should...-проверка - в рамках таймаута - будут последовательно выполняться
  42.                 проверки - до тех пор, пока
  43.                 проверка не пройдет или таймаут не закончится
  44.  
  45.                 такой подход позволяет писать надежные тесты
  46.                 которые не зависят от особенностей загрузки страницы
  47.  
  48.                 ну и даже в тех редких случаях, когда нужно что-то проверить
  49.                 но это что-то - не является свойством ни элемента, ни коллекции
  50.                 (например  - проверить урл)
  51.                 то - лучше использовать jUnit-овский assert (assertEquals например)
  52.                 http://stackoverflow.com/questions/2966347/assert-vs-junit-assertions
  53.  
  54.                 а - про необходимое ожидание - придется заботиться самостоятельно
  55.  
  56.                 тут, в этом задании - нам нужны should...-проверки
  57.  
  58.             теперь - что проверять
  59.                 судя по реализованной проверке
  60.                 ты намеревался проверить - что в списке тасок - есть 4 таски с классом active
  61.                     если планируешь работать с тасками
  62.                     то - не надо тебе никаких новых независимых селекторов
  63.                     у тебя в пейдже уже есть переменная tasks
  64.                     вот ею и пользуйся
  65.  
  66.                     такого рода проверку можно было бы переписать как
  67.                     page.tasks.filter(...).shouldHave(size(4));
  68.  
  69.                 НО
  70.                     проверка размера списка тасок - это недостаточная проверка
  71.                     например, таски добавились, но не с теми текстами
  72.                     или не в том порядке
  73.  
  74.                     есть кондишен - exactTexts
  75.                     он позволяет проверить количество, порядок, и сами тексты
  76.                     такая проверка - будет максимально точной
  77.  
  78.                 еще одно НО
  79.                     в данном случае - проверять только таски с классом active -
  80.                     значит проверить не весь список
  81.                     а только таски с таким-то классом
  82.  
  83.                     ведь может быть - что помимо тасок с классом active - насоздавались
  84.                     какие-то другие таски
  85.  
  86.                     тут - логичнее без отбора по классу active
  87.                     проверить тексты всех тасок
  88.                     выше писала - как это сделать, используя одну проверку
  89.         */
  90.  
  91.         page.delete("task2");
  92.         assert $$("li[class=active]").size() == 3;
  93.  
  94.         page.toggle("task4");
  95.         page.clearCompleted();
  96.         assert $$("li[class=active]").size() == 2;
  97.  
  98.         page.toggleAll();
  99.         page.clearCompleted();
  100.         assert $$("li[class=active]").size() == 0;
  101.        
  102.         /*
  103.             в целом - все проверки - на нужных местах
  104.            
  105.             замени проверки - на ждущие+точные проверки
  106.              
  107.             будет достаточно проверять список тасок
  108.             без отборов по классу active
  109.              
  110.             во всех случаях, кроме последнего - тебе подойдет кондишен exactTexts
  111.             в последнем - можно использовать кондишен size,
  112.             а нагляднее будет - использовать кондишен empty
  113.         */
  114.     }
Advertisement
Add Comment
Please, Sign In to add comment