julia_v_iluhina

Untitled

Feb 9th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.90 KB | None | 0 0
  1.     @Test
  2.     public void testTasksLifeCycle() {
  3.  
  4.         ...
  5.  
  6.         filterActive();
  7.         assertNoTasks();
  8.         add("b");
  9.         /*
  10.             тут не хватает проверки
  11.             операция toggleAll(); - не проверяет операцию add("b");
  12.             так что - нужно проверить состояние списка тасок
  13.         */
  14.         toggleAll();
  15.         assertNoTasks();
  16.  
  17.         filterCompleted();
  18.         assertTasks("a", "b");
  19.         //reopen
  20.         toggle("a");
  21.         assertTasks("b");
  22.         clearCompleted();
  23.         assertNoTasks();
  24.  
  25.         filterAll();
  26.         delete("a");
  27.         /*
  28.             придираться к этому не буду)
  29.             но все равно опишу
  30.             http://joxi.ru/xAe1zDPspXEXEA
  31.             смотри = мы планировали smoke покрытие
  32.             и если мы решили покрыть удаление таски в фиче-тесте
  33.             то из е2е стоит это действие убрать
  34.  
  35.             ведь smoke покрытие подразумевает - что мы покрывем высокоприоритетные операции лишь единожды
  36.  
  37.             чтобы все было оптимально - отсюда delete("a"); стоит убрать
  38.             и оставить - лишь проверку списка тасок после перехода на All фильтр
  39.         */
  40.         assertNoTasks();
  41.  
  42.     }
  43. ***********************************************
  44.  
  45.     @Test
  46.     public void testEditAtAll(){
  47.         add("a", "b");
  48.         startEdit("b", "b-edited").pressEnter();
  49.         assertTasks("a","b-edited");
  50.         assertItemsLeft(2);
  51.     }
  52. /*
  53.     в целом - да, все ок
  54.  
  55.     единственный момент - я советую отделить предварительные действия от тестовых
  56.     и использовать комментарий - //given
  57.     будут еще задания - когда нам такие комментарии не понадобятся
  58.     но сейчас - они будут уместны - т к из кода этого прямо не следует
  59.  
  60.     с учетом этого - получим
  61. */
  62.     @Test
  63.     public void testEditAtAll(){
  64.         //given
  65.         add("a", "b");
  66.  
  67.         startEdit("b", "b-edited").pressEnter();
  68.         assertTasks("a","b-edited");
  69.         assertItemsLeft(2);
  70.     }
  71. ************************************************
  72.     @Test
  73.     public void testCancelEditAtAll(){
  74.         add("a");
  75.         startEdit("a", "a-edited").pressEscape();
  76.         assertTasks("a");
  77.         assertItemsLeft(1);
  78.     }
  79. /*
  80.     тоже придираться не буду
  81.     но я бы планировала и реализовывала - покрыть это действие на Active фильтре
  82.     из соображений - чтоб распределить поравномернее операции по разным фильтрам
  83. */
  84. *************************************************
  85.  
  86.     @Test
  87.     public void testDeleteAtCompleted(){
  88.         add("a", "b");
  89.         toggleAll();
  90.         filterCompleted();
  91.         delete("a");
  92.         assertTasks("b");
  93.         assertItemsLeft(0);
  94.     }
  95. /*
  96.     реализация - ок
  97.     единственное - как отмечала выше - советую подправить оформление
  98. */
  99.     @Test
  100.     public void testDeleteAtCompleted(){
  101.         //given - completed tasks
  102.         add("a", "b");
  103.         toggleAll();
  104.         filterCompleted();
  105.  
  106.         delete("a");
  107.         assertTasks("b");
  108.         assertItemsLeft(0);
  109.     }
  110. **********************************
  111. /*
  112.  
  113.     Это к общему сведению)
  114.    
  115.     Есть разные способы выполнять предварительные действия
  116.     Мы сейчас делаем это через действия на UI (User Interface)
  117.     А есть еще методы - работать непосредственно с данными (далее вы такое тоже попробуете)
  118.     Так вот через действия на UI - предварительные действия не быстрые и часто не достаточно надежные
  119.     А через непосредственную работу с данными - предварительные действия быстрые и надежные
  120.    
  121.     Если предварительные действия медленные или не надежные
  122.     То проверка в конце предварительных действий нужна
  123.    
  124.     А если мы уверены - что после предварительных действий гарантировано все ОК,
  125.     то и проверок не надо после предварительных действий    
  126.    
  127.     Но, поскольку наше приложение - простое
  128.     Разумно не делать проверку в конце предварительных действий
  129.     чтобы наши тесты были эффективнее
  130.    
  131.     Тестировали бы что-то типа соцсети и если бы предварительные действия были
  132.     реализованы через UI - да, после предварительных действий было бы разумно
  133.     выполнить проверку (проверка после предварительных действий нам позволяет отличить -
  134.     ошибка возникла на этапе выполнения тестируемого действия, или все же раньше)
  135.    
  136.    
  137. */
Advertisement
Add Comment
Please, Sign In to add comment