Advertisement
julia_v_iluhina

Untitled

Jan 12th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.57 KB | None | 0 0
  1.    @Step
  2.     private void confirmEditByTab(String oldTaskText, String newTaskText) {
  3.         startEdit(oldTaskText, newTaskText);
  4.         $("#header>h1").pressTab();
  5.  
  6.     }
  7. /*
  8.     startEdit(oldTaskText, newTaskText).pressTab(); - так разумнее делать
  9.     именно так юзер и делает это действие
  10.     нажимает Tab - сразу после ввода нового текста
  11.     когда это поле ".edit" - еще в фокусе
  12.  
  13.     а не - переключается на элемент $("#header>h1") и там нажимает Tab
  14. */
  15.  
  16.     @Step
  17.     private void confirmEdit(String oldTaskText, String newTaskText) {
  18.         startEdit(oldTaskText, newTaskText);
  19.         $("#header>h1").click();
  20.  
  21.     }
  22. /*
  23.     я писала - что вместо $("#header>h1") разумнее использовать $("#new-todo")
  24.     строки 105-118 прошлого ревью
  25.  
  26.     confirmEdit - уточни имя метода - confirmEditByClickOutside
  27.     confirmEditByTab - да и тут стоит быть точнее - confirmEditByPressTab
  28. */
  29. *********************************
  30.     @Test
  31.     public void deleteByEmptyingTtextAtAll() {
  32.  
  33.         given(ACTIVE, "a");
  34.  
  35.         confirmEditByTab("a", "");
  36.         assertNoTasks();
  37.     }
  38.  
  39.     @Test
  40.     public void deleteByEmptyingTtextAtActive() {
  41.  
  42.         givenAtActive(ACTIVE, "a");
  43.  
  44.         confirmEditByTab("a", "");
  45.         assertNoTasks();
  46.     }
  47.  
  48.     @Test
  49.     public void deleteByEmptyingTtextAtCompleted() {
  50.  
  51.         givenAtCompleted(COMPLETED, "a");
  52.  
  53.         confirmEditByTab("a", "");
  54.         assertNoTasks();
  55.     }
  56. /*
  57.     во всех 3-х тестах - используется одна и та же тестовая сиуация
  58.     работаем с единственной таской в списке
  59.  
  60.     я писала - используй разные тестовые ситуации
  61.     удали единственную таску
  62.     удали вторую таску
  63.     удали единственную видимую (при условии что есть еще и не видимая)
  64.  
  65.     это касается всех без исплючения фиче-тестов
  66.     проверь - тестовые ситуации должны быть разнообразными
  67.     это обеспечит лучшее покрытие при таком же количестве тестов
  68.     больше нюансов учтешь
  69.  
  70.     смотри на название методов - есть ошибки в spelling
  71.     и другие методы просмотри - такого плана ошибки еще есть
  72.     ошибки в spelling IntelIJ Idea подчеркивает зеленой волнистой линией
  73.  
  74. */
  75. *******************************
  76.     public void switchFromAllToCompleted() {
  77.     public void FromAllToActive() {
  78.     public void FromActiveToAll() {
  79.     public void FromActiveToCompleted() {
  80.     public void FromCompletedToAll() {
  81.     public void FromCompletedToActive() {
  82. /*
  83.     строки 75-92 прошлого ревью - относится ко всем этим методам
  84.  
  85.     не забывай - в Java имена методов должны начинаться с маленькой буквы
  86. */
  87. ****************************
  88.     @Test
  89.     public void reopenAllAtCompleted() {
  90.  
  91.         givenAtCompleted(ACTIVE, "a", "b");
  92.  
  93.         toggleAll();
  94.         assertTasks("a", "b");
  95.         assertItemsLeft(0);
  96.     }
  97. /*
  98.     метод делает не то
  99.     что заявляет
  100. */
  101. ********************************
  102.     @Test
  103.     public void clearCompletedAtAll() {
  104.  
  105.         given(COMPLETED, "a", "b");
  106.         clearCompleted();
  107.         assertNoTasks();
  108.     }
  109. /*
  110.     строки 56-59 прошлого ревью
  111. */
  112. ********************************
  113.     @Test
  114.     public void clearCompletedAtActive() {
  115.  
  116.         givenAtActive(ACTIVE, "a", "b");
  117.  
  118.         toggle("a");
  119.         clearCompleted();
  120.         assertTasks("b");
  121.         assertItemsLeft(1);
  122.     }
  123. /*
  124.     complete - мы тут не тестируем
  125.     сразу создай - в гивен-методе - закомпличеную таску
  126. */
  127. *******************************
  128.     @Test
  129.     public void deleteAtCompleted() {
  130.  
  131.         givenAtCompleted(ACTIVE, "a");
  132.  
  133.         toggleAll();
  134.         delete("a");
  135.         assertNoTasks();
  136.     }
  137. /*
  138.     то же самое
  139.     complete all- мы тут не тестируем
  140.     сразу создай - в гивен-методе - закомпличеную таску
  141. */
  142. *************************************
  143.     @Test
  144.     public void editAtCompleted() {
  145.  
  146.         given(COMPLETED, "a");
  147.  
  148.         toggleAll();
  149.         edit("a", "aEdited");
  150.         assertTasks("aEdited");
  151.         assertItemsLeft(1);
  152.     }
  153. /*
  154.     метод делает не то что написано в его имени
  155.  
  156.     и действия лишние - правильно готовь тестовую ситуацию
  157.     если тестируем редактирование
  158.     то уже никаких toggleAll() в тесте быть не должно
  159. */
  160. **************************************
  161.     @Test
  162.     public void editAtAll() {
  163.  
  164.         given(ACTIVE, "a");
  165.         given(COMPLETED, "b");
  166.  
  167.         edit("b", "bEdited");
  168.         assertTasks("bEdited");
  169.         assertItemsLeft(0);
  170.     }
  171. /*
  172.     зачем 2 вызова гивен-методов?
  173. */
  174. ************************************
  175.     public void testDeleteTaskAtAllFilter() {
  176.     public void testCancelEditTaskAtActiveFilter() {
  177.     public void testReopenAllAtCompleted() {
  178. /*
  179.     посмотри внимательно - разве это уже не покрыто новыми фиче-тестами?
  180.  
  181.     в рамках одного тест-класса - подходи к неймингу тест-методов с какими-то одними правилами
  182.  
  183.     начинаешь имя тест-метода с test - ок
  184.     но только делай єто для всех тест-методов
  185.     или не делай для всех
  186.  
  187.     то же касается уточнений - AtAllFilter или AtCompleted
  188.     Filter - то пишем то нет
  189.  
  190.     одно правило в нейминге - сделает код однозначнее
  191. */
  192. ****************************
  193.     public void testTasksLifeCycle() {
  194.  
  195.         add("a");
  196. /*
  197.     и тут примени гивент-метод
  198.     тут - мы должны задать = список тасок на начало теста пуст и стартуем с all фильтра
  199.     такой гивен у тебя точно есть
  200. */
  201. *********************************
  202. AtTodoMVCPageWithClearedDataAfterEachTest
  203. /*
  204.     еще наворот, уже последний
  205.  
  206.     мы наследуем тест-класс от AtTodoMVCPageWithClearedDataAfterEachTest
  207.  
  208.     перед запуском теста - открываем наше приложение
  209.     после - чистим локалсторидж
  210.  
  211.     гивены можно вызывать и для варианта, когда надо задать пустой список тасок
  212.     значит - можно вызывать в каждом тест-методе гивен-метод
  213.     и убрать очистку локал сториджа после теста - вот уже облегчили код
  214.  
  215.     дальше - раз все тесты происхолят после открытия одного и того же урла
  216.  
  217.     можно вначале гивен-метода проверить
  218.     если сейчас урл не такой, то открыть нужный урл
  219.  
  220.     этот кусочек кода можно оформить в виде метода,
  221.     который будет вызываться вначле гивен-метода
  222.     такого плана методы = если сейчас не так, то сделать так
  223.     часто называют, начиная со слова ensure = обеспечить
  224.  
  225.     вот и не нужен нам код - по открытию урла в бифор-методе
  226.     сразу вопрос - какой предок нужен тест-классу)
  227.  
  228.     вот тебе и еще одна оптимизация)
  229.     кода меньше
  230.     сущностей меньше
  231.     действий лишних меньше
  232. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement