julia_v_iluhina

Untitled

Dec 26th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.87 KB | None | 0 0
  1. import org.junit.Test; // Почему Test подсвечивается серым, как будто он не используется
  2.  
  3. /*
  4.     сравни -
  5.     как подцвечивается сейчас - http://joxi.ru/p275M9zsoony5r (это не серый, а какой-то другой цвет, такой же  и у самой аннотации)
  6.     а это если не использовать аннотацию @Test - http://joxi.ru/12MDGYXuMMwebm (вот это  - серый = не используется)
  7.  
  8.     просто цвета близкие
  9.     а так - все ок
  10. */
  11. ***************
  12. public class TodoMVCTest {
  13.     @Test
  14.     public void testTasksLifeCycle() {
  15.  
  16.         open("https://todomvc4tasj.herokuapp.com/");
  17.  
  18.         add("1");
  19.         edit("1", "1 edited");
  20.         assertTasksAre("1 edited");
  21.         toggle("1 edited");
  22.         /*
  23.             операция toggle("1 edited") - проверит операцию edit("1", "1 edited");
  24.             потому - перед toggle - можно убрать assertTasksAre - используем неявную проверку через действие
  25.  
  26.             а вот после toggle - assertTasksAre - нужно
  27.             тут - проверим часть логики, что на all фильтре - все таски вне зависимости от статуса отображаются
  28.             а после перехода на Active фильтр - проверив состояние списка тасок -
  29.             мы проверим и работу фильтеринга
  30.             и как мы закомплитили таску
  31.         */
  32.  
  33.  
  34.         filterActive();
  35.         // assertTasksEmpty() - падает данная проверка
  36.         /*
  37.             верно, такая проверка падает
  38.             посмотри внимательно - и на текст сообщения, и на состояние списка тасок (HTML код посмотри в FireBug)
  39.             что-то такое должен увидеть - http://joxi.ru/l2ZNaR0F83gJv2
  40.             подумай, как уточнить проверки списка тасок - чтоб на любом фильтре корректно работали
  41.         */
  42.         clearCompleted();
  43.         /*
  44.             советую отложить удаление тасок - на конец сценария
  45.             чем позже удалишь таску, тем больше на ней всякого можно проверить
  46.  
  47.             после clearCompleted() - тоже нужна проверка
  48.             ведь стелующая операция не проверит результаты clearCompleted();
  49.         */
  50.         add("2");
  51.         assertTasksAre("2");
  52.         /*
  53.             а вот тут - таска "2" - единственная видимая таска
  54.             потому - операция cancelEdit("2" ...
  55.             является неявной проверкой для add("2")
  56.             советую - assertTasksAre - пропустить
  57.         */
  58.         cancelEdit("2", "2 edited");
  59.         assertTasksAre("2");
  60.         /*
  61.             а вот тут - проверку пропускать денльзя, ты прав
  62.             т к toggleAll() - не проверит операцию cancelEdit("2"
  63.         */
  64.         toggleAll();
  65.         /*
  66.             нужна проверка
  67.         */
  68.  
  69.  
  70.         filterCompleted();
  71.         assertTasksAre("2");
  72.         /*
  73.             тут все ок
  74.             перешли на нужный фильтр, выполнили проверку
  75.         */
  76.         toggle("2");
  77.         //пробовал сделать проверку  assertTasksEmpty() - падает, не знаю почему
  78.         /*
  79.             я выше писала - что нужно сделать, чтоб разобраться
  80.             природа этой проблемы - одна и для Active и для Completed фильтра
  81.  
  82.             я бы на Completed фильтре, вот тут, советовала покрыть clearCompleted
  83.             так получится более равномерное распределение операция по фильтрам
  84.             в прошлый раз писала - почему это важно
  85.         */
  86.  
  87.  
  88.         filterAll();
  89.         assertTasksAre("2");
  90.         delete("2");
  91.         assertTasksEmpty();
  92.         /*
  93.             тут - все ок
  94.         */
  95.  
  96.     }
  97. /*
  98.     покрытие - ок
  99.     сценарий - ок (можно чуть улучшить - перенеси clearCompleted на Completed фильтр)
  100.  
  101.     есть проблема с реализацией проверки состояния списка
  102.     про это нужно еще немного подумать
  103.  
  104.     поскольку проблема единственная - немного больше тебе подскажу
  105.  
  106.         Посмотри видео Якова про это - https://drive.google.com/file/d/0B8hgIBw8-V-AdGxxU1R3enl1RzQ/view?ts=567ab8d7
  107.    
  108.             мы можем быть максимально точными и держать 4 проверки
  109.             2 -
  110.                 в списке = такси с такими-то текстами
  111.                 в списке = пусто
  112.             и еще 2 -
  113.                 в отфильтрованном по visible списке = таски с такими-то текстами
  114.                 в отфильтрованном по visible списке = пусто
  115.             И за точность будем платить  тем - что надо думать - когда какую проверку вызвать правильнее
  116.             и если это делать бездумно - то при небольших изменениях сценариев - могут тесты падать на проверках,
  117.             или второй вариант - не будем нормально пользоваться полученной точностью...
  118.        
  119.             мы можем исходить из того, что ошибку, когда невидимые таски копятся в списке - мы тестим на более низком уровне,
  120.             и на UI уровне - нам не нужно до этого уточняться. Поэтому - мы будем держать всего 2 проверки
  121.                   в отфильтрованном по visible списке = таски с такими-то текстами
  122.                   в отфильтрованном по visible списке = пусто
  123.             В таком случае - каждый раз понятно - какую проверку вызывать - получаем более KISS картину
  124.             правда, платим за это точностью) Но - возможно - если мы уже отдельно это в тестах покрыли -
  125.             что у нас не копятся невидимые таски - так мы и не платим ) И - тогда - все проще в написании тестов,
  126.             и в их сопровождении.
  127.             Тогда - поскольку обе проверки реализованы одинаково и других нету - можно из имен проверок скрыть этот нюанс
  128.             и назвать их assertTasks и assertNoTasks (хотя в них работаем с отфильтрованным по visible списком тасок)
  129. */
  130. *********************************************
Advertisement
Add Comment
Please, Sign In to add comment