julia_v_iluhina

Untitled

Nov 19th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.37 KB | None | 0 0
  1. package ua.net.itlabs.hw1;
  2. ...
  3. public class TodoMVCSmokeAndFeatureTest {
  4. /*
  5.     Информация в имени тест-класса - SmokeAndFeature - не помогает
  6.  
  7.     Smoke - это важно
  8.     но информацию о покрытии - лучше отражать по-другому. Дальше на курсе будет и это)
  9.     Smoke покрытие может быть реализовано и набором нескольких тест-методов - из разных тест-классов
  10.     В общем  случае - это не характеристика тест-класса
  11.     а характеристика набора тест-методов
  12.  
  13.     Feature - это уже рассказ про тип/вид/разновидность тестов
  14.     во-первых - не все тесты у нас такие
  15.     во-вторых - это тоже мало что проясняет
  16.  
  17.     получаем - что наще уточненное имя тест-класса - TodoMVCSmokeAndFeatureTest
  18.     реально мало что поясняет
  19.     посмотри на раздел по неймингу - faq
  20.  
  21.     TodoMVCTest - и тут такое имя подойдет
  22.     а вот разместить такой тест-метод - стоит в другом пекедже
  23.     не в ua.net.itlabs.hw1
  24.     а в ua.net.itlabs.придумай имя пекеджа
  25.  
  26.     Уже это обсуждали - структурную информацию - отражай через структуру пекеджей
  27.  
  28.     в Java - в рамках одного проекта, в разных пекеджах, могут быть классы с одним именем
  29.     так что - это не проблема
  30. */
  31. ****************************
  32.     @Test
  33.     public void testTasksLifeCycle() {
  34.  
  35.         ...
  36.  
  37.         filterAll();
  38.         toggleAll();
  39. /*
  40.     откуда взялся повторный complete all ?
  41.     В окончательнос решении - http://pastebin.com/L5ANvSqE
  42.     этого не было
  43.  
  44.     тут - была цель упрощать е2е
  45.     а и мы не планировали такого -
  46.     https://docs.google.com/spreadsheets/d/18tnNJA1B-wm023AhNZ8nJRNS1ENy__bAicQyycWse-c/edit#gid=448037844
  47.  
  48.     убери усложнения
  49.  
  50.     и попробуй применить тексты тасок не  task1, task2 ...
  51.     a - a,b,c ....
  52.     Это Яков на видео показывал - такой способ сделать код легче для восприятия
  53.     это касается всех тест-методов
  54. */
  55. ***********************************
  56.     @Test
  57.     public void testEditTask() {
  58.  
  59.         add("task1");
  60.         edit("task1", "task1 edited");
  61.         assertItemsLeft(1);
  62.         assertTasks("task1 edited");
  63.  
  64.     }
  65. /*
  66.     имя фиче-теста - что тестим и на каком фильтре
  67.  
  68.     структура фиче-теста
  69.       предварительные действия
  70.       тестируемое действие
  71.       проверки
  72.  
  73.     предварительные действия начнем с комментария //given - ...
  74.     чтоб было понятно - что это предварительные действия и что за ситуацию мы в результате их получим
  75.     внутри и в конце блока предварительных действий - проверок не делаем
  76.     (мы это тут не тестируем, а используем для создания тестовой ситуации, ниже будет подробнее)
  77.  
  78.     после предварительных действий - пропустим строку
  79.     чтоб выделить - вот подготовка, вот - тестируемое действие
  80.  
  81.     проверки
  82.     сначала - более важные
  83.     затем - менее важные
  84.     (собственно - так ты и реализовал)
  85.     такой порядок - чтобы даже если тест упадет на менее важной проверке - был фидбек о важной проверке
  86.  
  87.     еще - в фиче-тестах мы можем себе позволить более интересные тестовые ситуации
  88.     например - редактирование второй таски в списке
  89.  
  90.     в итоге - с учетом этих рекомендаций - получим
  91. */
  92.     @Test
  93.     public void testEditTaskAtAllFilter() {
  94.         //given
  95.         add("a");
  96.  
  97.         edit("a", "a edited");
  98.         assertTasks("a edited");
  99.         assertItemsLeft(1);
  100.     }
  101. /*
  102.     Примени те же подходы и к другим атомарным тест-методам
  103. */
  104. **********************************
  105.  
  106.     @Test
  107.     public void testDeleteTask() {
  108. /*
  109.     а если бы в предварительных действиях - добавил 2 таски - то смог бы и assertItemsLeft проверить
  110.     и более интересную тестовую ситуацию покрыть - удаление второй таски в списке
  111. */
  112. **************************************
Advertisement
Add Comment
Please, Sign In to add comment