Advertisement
julia_v_iluhina

Untitled

Oct 27th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.21 KB | None | 0 0
  1. public class TodoMVCTest {
  2.  
  3.   @Test
  4.   public void testCreateTask(){
  5.   /*
  6.     строки 5-21 в http://pastebin.com/ieY3rwh2
  7.   */
  8.  
  9.     open("https://todomvc4tasj.herokuapp.com/");
  10.  
  11.     // 1-4. Task creation
  12.     $("#new-todo").setValue("task1").pressEnter();
  13.     $("#new-todo").setValue("task2").pressEnter();
  14.     $("#new-todo").setValue("task3").pressEnter();
  15.     $("#new-todo").setValue("task4").pressEnter();
  16.     $$("#todo-list li").shouldHave(size(4));
  17.     $$("#todo-list li").shouldHave(exactTexts("task1", "task2", "task3", "task4"));
  18.     /*
  19.         проверки кондишена exactTexts - достаточно
  20.         она проверяет количество, порядок и текст
  21.         см строки 37-43 в http://pastebin.com/ieY3rwh2
  22.  
  23.         учти это и для проверок во всем коде
  24.     */
  25.  
  26.     //  5. delete task2
  27.  
  28.     $(By.cssSelector("#todo-list li:nth-of-type(2)")).hover();
  29.     $(By.cssSelector("#todo-list li:nth-of-type(2) .destroy")).click();
  30.     /*
  31.         используй пропуски строк единообразно
  32.         http://joxi.ru/Vm6Qqxphxg7YLr
  33.         1 - то не пропускаешь строки после комментария,то пропускаешь
  34.  
  35.         советую между комметарием и к нему относящимся кодом - не делать пропусков
  36.         пусть пропуски строк отделяют блоки кода
  37.  
  38.         каждый блок - своя какая-то часть (комментарий+действие(я)+проверка)
  39.  
  40.         2 - выравнивай комментарии тоже в одном стиле
  41.         выравнивать на том же уровне с кодом - хорошая идея
  42.  
  43.         эти мелочи улучшают восприятие кода
  44.         причем существенно
  45.         учти это для всего кода
  46.  
  47.         *************************************
  48.  
  49.         сравни
  50.         $(By.cssSelector("#todo-list li:nth-of-type(2)"))
  51.         и
  52.         $("#todo-list li:nth-of-type(2)")
  53.         технически - одно и то же
  54.         но код читается легче - когда он короче
  55.         здесь и в других аналогичных местах - подправь
  56.     */
  57.  
  58.     $$("#todo-list li").shouldHave(size(3));
  59.     $$("#todo-list li").shouldHave(exactTexts("task1", "task3", "task4"));
  60.  
  61.  
  62. //    6. mark task4 as completed
  63.     $(By.cssSelector("#todo-list li:nth-of-type(3)")).hover();
  64.     $(By.cssSelector("#todo-list li:nth-of-type(3) .toggle")).click();
  65.     /*
  66.         в случае с удалением таски - нам нужно было выполнить hover()
  67.         чтобы кнопка удаления таски стала видимой
  68.  
  69.         для чекбокса .toggle - такой проблемы нет
  70.         он и так видим
  71.         достаточно просто click() вызывать
  72.         hover() - в данном случае лишнее действие
  73.  
  74.         комментарий к коду  - может быть и проще - complete task4
  75.         старайся вообще ничего лишнего в комментариях не писать
  76.         со временем понадобится поменять сценарий - пространные комментарии дольше менять
  77.         вообще - со временем сможем вообще избавиться от большинства комментариев
  78.         сейчас - ты можешь их как минимум сделать не такими многословными
  79.         некоторые - даже убрать - т к и без того код понятен
  80.         например - нумерацию из комментариев точно стоит убрать
  81.     */
  82.  
  83. //    7. clear completed
  84.     $("#clear-completed").click();
  85.  
  86.     $$("#todo-list li").shouldHave(size(2));
  87.     $$("#todo-list li").shouldHave(exactTexts("task1", "task3"));
  88.  
  89.  
  90. //    8. mark all as completed
  91.     $("#toggle-all").click();
  92.  
  93. //    9. clear completed
  94.     $("#clear-completed").click();
  95.     $("#clear-completed").should(disappear);
  96. /*
  97.     гораздо важнее - что в списке тасок нет ни одной таски теперь
  98.     то, что кнопка clear completed стала не видимой - это конечно факт)
  99.     но гораздо менее важный с точки зрения логики приложения
  100.    
  101.     главная наша цель - чтобы после нажатия на clear completed - все закомпличеные таски в списке
  102.     были удалены
  103.     тут нужна проверка списка
  104.    
  105.     где и как делать такие второстепенные по важности проверки - рассмотрим на курсе
  106.     а наш е2е сценарий - лучше не засорять второстепенными вещами
  107. */
  108.  
  109.   }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement