julia_v_iluhina

Untitled

Oct 11th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.75 KB | None | 0 0
  1. public class ToDoMVCTest {
  2.  
  3.     @Test
  4.     public void tasksLifeCycle() {
  5.         open("https://todomvc4tasj.herokuapp.com/");
  6.  
  7.         add("1");
  8.         edit("1", "1 edited");
  9.         toggle("1 edited");
  10.         assertVisibleTasksAre("1 edited");
  11.         /*
  12.             отличный кусочек
  13.             и неявные проверки использованы удачно
  14.             и заканчиваем правильно - удастся оттестить фильтеринг точно
  15.         */
  16.  
  17.         filterActive();
  18.         assertVisibleTasksEmpty();
  19.         add("2");
  20.         cancelEditWithEsc("2", "2 edited");
  21.         toggle("2");
  22.         /*
  23.             complete - мы уже покрыли на all. Повторяться не нужно
  24.             complete all - мы еще не покрывали, разумно покрыть
  25.             только учти, что понадобится проверка перед toggleAll
  26.             т к toggleAll - не проверяет состояние списка
  27.  
  28.             ну и после действия toggle("2"); - не хватает проверки
  29.         */
  30.  
  31.         filterCompleted();
  32.         /*
  33.             тут - у нас 2 видимых таски - и поэтому операция toggle("1 edited");
  34.             не проверит состояние списка полностью
  35.             нужна проверка состояния списка тасок
  36.         */
  37.         toggle("1 edited");
  38.         assertVisibleTasksAre("2");
  39.         clearCompleted();
  40.         assertVisibleTasksEmpty();
  41.  
  42.         filterAll();
  43.         /*
  44.             при таком варианте - когда следующая операция toggleAll();
  45.             нужна проверка состояния списка тасок
  46.            
  47.             но - выше писала - где лучше покрыть toggleAll();
  48.             значит - отсюда toggleAll(); уйдет
  49.             тем более - что тут  уже сложно эту операцию проверить достаточно точно
  50.            
  51.             а вот операцию delete("1 edited"); - можно считать неявной проверкой после  filterAll();
  52.             а можно и уточнить - следать проверку после filterAll();
  53.             тут вопрос спорный)
  54.             все же filterAll(); - это работа не с единственной таской
  55.         */
  56.         toggleAll();
  57.         delete("1 edited");
  58.         assertVisibleTasksEmpty();
  59.     }
  60.  
  61. ****************************************************
  62.     public void edit(String oldTaskText, String newTaskText) {
  63.  
  64.         tasks.findBy(exactText(oldTaskText)).doubleClick();
  65.         tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText).pressEnter();
  66.     }
  67.  
  68.     private void cancelEditWithEsc(String oldTaskText, String newTaskText) {
  69.  
  70.         tasks.findBy(exactText(oldTaskText)).doubleClick();
  71.         tasks.findBy(cssClass("editing")).$(".edit").setValue(newTaskText).sendKeys(Keys.ESCAPE);
  72.     }
  73. /*
  74.     вместо sendKeys(Keys.ESCAPE) - можно применять pressEscape()
  75.    
  76.     методы очень похожи
  77.     отличаются только .pressEnter() или pressEscape()
  78.    
  79.     реализуй метод xxx возвращающий SelenideElement = элемент, в котором мы вводили новый текст
  80.     с общим для этих методов кодом
  81.    
  82.     и потом будешь использовать
  83.     xxx(....).pressEscape()
  84.     xxx(...).pressEnter()
  85.    
  86.     подумай про название этого метода xxx - это начало/старт редактирования
  87. */    
  88.  
  89. *************************************
  90.     private void assertVisibleTasksAre(String... taskTexts) {
  91.         tasks.filter(visible).shouldHave(exactTexts(taskTexts));
  92.     }
  93.  
  94.     private void assertVisibleTasksEmpty() {
  95.         tasks.filter(visible).shouldBe(empty);
  96.     }
  97. /*
  98.     раз используешь лишь эти 2 ассерта для проверки состояния списка тасок
  99.    
  100.     то можно из названия методов  - убрать уточнение о Visible
  101.     в видео Якова https://drive.google.com/file/d/0B8hgIBw8-V-AdGxxU1R3enl1RzQ/view?ts=567ab8d7
  102.     было про это
  103.  
  104.  
  105.     да, еще желательно в рамках этого е2е единожды покрыть и проверку счетчика активных тасок
  106.     в предыдущем ревью было про это
  107. */
Advertisement
Add Comment
Please, Sign In to add comment