julia_v_iluhina

Untitled

Oct 10th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.07 KB | None | 0 0
  1.  private Task getTask(TaskStatus taskStatus, String taskText) {
  2.         return new Task(taskStatus, taskText);
  3.  }
  4. /*
  5.     сравни
  6.     new Task(taskStatus, taskText)
  7.     getTask(taskStatus, taskText)
  8.  
  9.  
  10.     выигрыш - в одну строку
  11.  
  12.     Яков в видео предлагал вариант  aTask
  13.     так  - выигрыш был
  14.     new Task(taskStatus, taskText)
  15.     aTask(taskStatus, taskText)
  16.  
  17.     потому - вариант с aTask - лучше
  18.     с одной стороны - понятно - о чем речь
  19.     с другой - все же выигрыш есть в лаконичности
  20.  
  21.     можно было бы и
  22.     task(taskStatus, taskText)
  23.  
  24.     но - мы уже применяем термин tasks - для списка тасок
  25.     может быть путаница
  26.     потому этот вариант - не очень
  27.  
  28.     на изменениях не настаиваю
  29.     больше преследую цель - объяснить для чего делали метод с именем aTask
  30. */
  31. *********************************
  32. private void givenAtActive(TaskStatus taskStatus, String... taskTexts) {
  33.         given(getTasks(taskStatus, taskTexts));
  34.         filterActive();
  35.  
  36. }
  37. /*
  38.     Можно еще короче переписать - в одну строку
  39.     givenAtActive(getTasks(taskStatus, taskTexts));
  40.  
  41.     аналогично и для givenAtCompleted(TaskStatus taskStatus, String... taskTexts)
  42. */
  43. *******************************
  44.     @Test
  45.     public void testTasksCommonFlow() {
  46.         ...
  47.         edit("A", "A Edited");
  48.         ...
  49.         filterActive();
  50.         ...
  51.         cancelEdit("B", "B Edited");
  52.         ...
  53.     }
  54. /*
  55.     http://pastebin.com/dh3v11kt
  56.     в твоей же работе Smoke  - e2e + f
  57.     мы вынесли edit & cancel edit из е2е
  58.  
  59.     да и дальше ты фиче-тесты реализовал для edit & cancel edit
  60.  
  61.     грамотнее - в е2е не делать edit & cancel edit в таком случае
  62. */
  63. *********************************
  64.  @Test
  65.     public void testEditOnAll() {
  66.         given(ACTIVE, "A", "B");
  67.  
  68.         edit("B", "B Edited");
  69.         assertTasks("A", "B Edited");
  70.         assertItemsLeft(2);
  71.     }
  72.  
  73.     @Test
  74.     public void testEditOnActive() {
  75.         givenAtActive(ACTIVE, "B", "C");
  76.  
  77.         edit("C", "C Edited");
  78.         assertTasks("B", "C Edited");
  79.         assertItemsLeft(2);
  80.     }
  81. /*
  82.     в обоих тестах = одна тестовая ситуация - работаем со второй таской в списке
  83.  
  84.     стоит в тестах для одной фичи - обеспечить разнообразие тестовых ситуаций
  85.     писала про это в прошлый раз
  86.     строки 79-94
  87. */
  88. ******************************
  89.     @Test
  90.     public void testReActivateOnAll() {
  91.         given(COMPLETED, "F", "G");
  92.  
  93.         filterAll();
  94.         toggleAll();
  95.         assertTasks("F", "G");
  96.         assertItemsLeft(2);
  97.  
  98.     }
  99. /*
  100.     ReActivate или Activate ?
  101.     раньше применяли Activate )
  102.  
  103.     зачем filterAll();?
  104.  
  105.     и делаем мы не Activate, а Activate all (toggleAll)
  106.  
  107.     сверься с тест-планом )
  108.     и прими решение - что тут покрыть нужно)
  109. */
  110. ************************************
  111.     @Test
  112.     public void testCompleteAllOnAll() {
  113.         given(ACTIVE, "J", "K", "L");
  114.  
  115.         toggleAll();
  116.         filterActive();
  117.         assertNoVisibleTasks();
  118.         filterCompleted();
  119.         assertVisibleTasks("J", "K", "L");
  120.         assertItemsLeft(0);
  121.     }
  122. /*
  123.     у нас есть тест testSwitchFrom...To...(),
  124.     и в e2e - покрываем переходы по фильтрам
  125.     эти тесты - нам дают фидбек про отображение тасок по фильтрам и состояние счетчика активных тасок
  126.  
  127.     и если на задачу смотреть в коммлексе - то тут достаточно после toggleAll
  128.     проверить состояние списка тасок и счетчика активных тасок
  129.     т к остальное - уже покрывается другими тестами
  130.  
  131.     а если хочется быть точнее
  132.     то тогда - делаем маленький е2е
  133.  
  134.     покрываем
  135.         complete all
  136.         to Completed filter
  137.         to Active filter
  138.         to All filter
  139.  
  140.     почему именно такие переходы - т к именно таких и не хватает
  141.         ведь остальные варианты уже покрыты
  142.  
  143.     еще годный вариант
  144.         complete all
  145.         clear completed
  146.  
  147.     !!! после каждого тестируемого дейстия - проверяем состояние списка тасок
  148.  
  149.     но - вариант c e2e на самом деле хуже
  150.     фиче-тесты - не зависят друг от друга
  151.     фидбек по результату тестирования мы получим качественнее
  152.     да и переходы с фильтра на фильтр - в фиче-тестах ты проверяешь точнее
  153.  
  154.     советую остановиться на фиче-тестах
  155.  
  156.     конечно, если бы мы не реализовывали полного покрытия
  157.     то для тестирования  complete all на all фильтре
  158.     я бы использовала тест complete all + clear completed
  159.  
  160.     можно и тут так поступить)
  161.  
  162.     да, не забудь - название тест-метода должно отражать - что протестировали
  163. */
  164. *****************************
  165.     public void testSwitchFromAllToComplete()
  166.     /*
  167.         to Completed - буквы не хватает
  168.         касается и имен других тест-методов
  169.     */
  170.  
  171.     public void testSwitchFromActiveToAll() {
  172.     public void testSwitchFromCompletedToActive() {
  173.     /*
  174.         во всех 3-х тестах - не надо перед тестируемым действием
  175.         = переходом на нужный фильтр
  176.         делать проверку состояния списка тасок
  177.  
  178.         тоже - посмотри на тесты в комплексе
  179.         у нас есть фидбек про то, как таски отображаются а каждом из фильтров
  180.  
  181.         достаточно проверок после тестируемого действия
  182.  
  183.         это так потому - что у нас есть эти 3 теста
  184.  
  185.     */
  186. ********************************************
  187.     public void testDeleteTaskByEmptyingTextOnComplete() {
  188. /*
  189.     тут - как и везде
  190.         не нужны проверки после гивен-метода
  191.  
  192.         OnComplete - OnCompleted - буквы не хватает
  193. */
  194. *************************************
  195.  public void testCancelEditByPressEscapeOnAll() {
  196.  public void testCancelEditByPressEscapeOnActive() {
  197.  public void testCancelEditByPressEscapeOnComplete() {
  198.  /*
  199.     CancelEdit - можно только через PressEscape сделать
  200.     потому PressEscape - можно в имени не уточнять
  201.  
  202.     в 2-ух тестах из 3-ех  - одинаковая тестовая ситуация
  203.     это подправь
  204.  */
  205. ****************************************
  206.      public void testConfirmEditByPressTabOnAll() {
  207.      public void testConfirmEditByClickOutside() {
  208. /*
  209.     не указал в имени - на каком фильтре покрыл
  210.     ну и лучше не на all это делать
  211.     т к testConfirmEditByPressTab - уже на all покрыл
  212. */
  213. ***************************************
  214.     private void confirmEditByClickOutside(String oldTaskText, String newTaskText) {
  215.         startEdit(oldTaskText, newTaskText);
  216.         $("#header").click();
  217.     }
  218. /*
  219.     логично - надо кликнуть на чем-то другом
  220.     да еще и таком, чтоб по клику ничего, кроме смены фокуса, не происходило
  221.  
  222.     и еще красивее можно реализовать
  223.     если кликать на чем-то с уже используемым селектором
  224.  
  225.     идеальный кандидат -  $("#new-todo")
  226.     вот это учти
  227.     https://docs.google.com/document/d/13dNyFGbI7mV22UUhH8E0LJ7SzabAmX7Bw7VCHScYfiU/edit#bookmark=id.4i6i27d7lwn4
  228. */
  229. ****************************
  230. private void confirmlEditByTab(String oldTaskText, String newTaskText) {
  231. /*
  232.     не confirml, а confirm
  233.     в IntelIJ Idea ошибки спеллинга подчеркиваются зеленой волнистой линией
  234. */
Advertisement
Add Comment
Please, Sign In to add comment