julia_v_iluhina

Untitled

Dec 29th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.02 KB | None | 0 0
  1. private void assertFilterActive() { $("#filters>li>.selected").shouldHave(exactText("Active")); }
  2. /*
  3.     форматирование кода в этом методе и еще нескольких - не стандартное
  4.  
  5.         в IntelIJ Idea
  6.         выдели код
  7.         в меню(верхнем) - выбери пункт  - Code->Reformat code
  8.  
  9.         советую завести привычку - в конце работы - обязательно форматировать код
  10.         вероятнее всего, ты будешь работать в команде, и твой код будут смотреть другие специалисты
  11.         им проще смотреть на стандартно отформатированный код (как правило)
  12.         иногда у команды есть свои правила форматирования, которые чуть отличаться от стандартных.
  13.         Если все сделано по уму, то у всех членов команды в IntelIJ Idea именно так и настроено форматирование кода.
  14.         Т е - все равно - привычка реформатировать код - нужна
  15.  
  16.         https://www.jetbrains.com/help/idea/2016.3/reformatting-source-code.html
  17.  
  18.     но это - не самое главное
  19.     а главное - такие проверки тебе не нужны в тестах Acceptance UI Testing уровня
  20.     В видео Якова, которое ты уже видел,
  21.         https://drive.google.com/file/d/0B8hgIBw8-V-AUDhxWDg1YmYxM3c/view
  22.     Примерно с 58-ой минуты до 01:04 примерно - об этом есть
  23.     Такая проверка - это больше проверка User Interface, а не функциональности
  24.     На уровне Acceptance UI Testing - нужно отдавать предпочтение именно функциональным проверкам
  25.  
  26.     Проверка, что выделена линка для перехода на Active фильтр = проверка стиля отображения этого элемента = проверка UI, а не функциональная проверка
  27.     А вот проверка состояния списка тасок - как раз функциональная проверка, проверка логики работы приложения, причем - важной ее части, критичной с точки зрения логики этого приложения
  28.  
  29.     Это неверный подход =
  30.         Убрать проверку состояния списка тасок после filterActive()
  31.         И при этом использовать assertFilterActive()
  32.     Т к мы проверили менее важное, и не проверили - гораздо более важное
  33.     На нашем уровне тестирования - нужно сосредоточиться именно на проверках логики работы приложения
  34. */
  35. ******************************
  36.     private void findTaskThenDoubleClick(String  fromTaskText){
  37.         tasks.find(exactText(fromTaskText)).doubleClick();
  38.     }
  39.  
  40.     private void edit(String fromTaskText, String toTaskText) {
  41.         findTaskThenDoubleClick(fromTaskText);
  42.         tasks.findBy(cssClass("editing")).find(".edit").setValue(toTaskText).pressEnter();
  43.     }
  44.  
  45.     private void startEditThenCancel(String fromTaskText, String toTaskText) {
  46.         findTaskThenDoubleClick(fromTaskText);
  47.         tasks.findBy(cssClass("editing")).find(".edit").pressEscape();
  48.     }
  49. /*
  50.     в чем суть этого действия - startEditThenCancel
  51.         мы уже вввели ноый текст
  52.         и нажали Escape
  53.         и, несмотря на введенный новый текст, остались со старым текстом = отменили редактирование
  54.  
  55.     а при такой реализации, как у тебя, даже если Enter нажать = текст таски не изменится
  56.     потому что мы его и не меняли
  57.  
  58.     это мы должны делать и при выполнении startEditThenCancel:
  59.     tasks.findBy(cssClass("editing")).find(".edit").setValue(toTaskText)
  60.     значит = это тоже повторяющееся действие
  61.  
  62.     Верни ввод нового текста - в startEditThenCancel
  63.  
  64.     И в метод, который будет выполнять общие действия - включи все общие действия
  65.     и пусть метод возвращает SelenideElement = элемент, в котором вводили новый текст
  66.     это нужно - чтобы для этого элемента - далее вызвать  pressEnter() или pressEscape();
  67.  
  68.     получишь
  69. */
  70.     private void startEdit(String fromTaskText, String toTaskText){
  71.         tasks.find(exactText(fromTaskText)).doubleClick();
  72.         return tasks.findBy(cssClass("editing")).find(".edit").setValue(toTaskText);
  73.     }
  74.  
  75.     private void edit(String fromTaskText, String toTaskText) {
  76.         startEdit(fromTaskText, toTaskText).pressEnter();
  77.     }
  78.     ...
  79. /*
  80.     метод элемента(SelenideElement) setValue - возвращает этот же элемент
  81.     потому - мы смогли написать вот так - return tasks.findBy(cssClass("editing")).find(".edit").setValue(toTaskText);
  82.    
  83.     зажми ctrl и наведи курсор мыши на setValue - увидишь сигнатуру метода
  84.     такой прием поможет тебе понять, как построить свой код, как использовать тот или иной метод
  85. */
  86. **********************************************
Advertisement
Add Comment
Please, Sign In to add comment