julia_v_iluhina

Untitled

Dec 20th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.67 KB | None | 0 0
  1. public void test5() {
  2. /*
  3.     убирай метод
  4.  
  5.     гивен-методы - уже ок
  6. */
  7. ***********************
  8.     @Test
  9.     public void testReopenAllAtCompleted() {
  10.  
  11.         givenAtCompleted(new Task("a", TaskType.COMPLETED), new Task("b", TaskType.COMPLETED));
  12.         /*
  13.             пропусти строку после гивен-метода - отдели предварительные действия от тестируемого
  14.         */
  15.         toggleAll();
  16.         /*
  17.             посмотри на другие фиче-тесты
  18.             в них - есть проверка состояния списка тасок
  19.             и в этом тест-методе, и в других, которые добавятся - нужно прежде всего
  20.             проверить список тасок
  21.             и затем - проверить счетчик Items Left(если это возможно)
  22.         */
  23.         assertItemsLeft(2);
  24.     }
  25. *********************************************************
  26.  
  27. givenAtCompleted(new Task("a", TaskType.COMPLETED), new Task("b", TaskType.COMPLETED));
  28. //или
  29. givenAtCompleted(COMPLETED, "a", "b");
  30.  
  31. /*
  32.     в случае если нужно добавить несколько тасок в одном статуче - второй вариант вызова - будет гораздо удобнее
  33.  
  34.     чтобы это сделать - нужен еще один набор гивен-методов (дополнительно)
  35.  
  36.        у нас уже есть enum для статуса таски (TaskType)
  37.        и нам нужен метод (методы), которые будут примерно такими - как ты реализовал изначально
  38.        чтобы метод создавал несколько тасок с одним и тем же статусом
  39.  
  40.        реализуй дополнительно методы
  41.          givenAtAll(TaskType taskType, String... taskTexts)
  42.          givenAtActive(TaskType taskType, String... taskTexts)
  43.          givenAtCompleted(TaskType taskType, String... taskTexts)
  44.  
  45.        ты получишь возможность для лаконичных вызовов
  46.        для каждого из фильтров - свой метод
  47.  
  48.        первый параметр - явно рассказывает, что это
  49.        и точно диктует - что за значения можно передать в метод
  50.  
  51.        в этих методах надо также переиспользовать given(Tasks... tasks)
  52.        т е - больше мы алгоритма не повторяем ни в одном методе
  53.        мы переиспоьзуем его
  54.  
  55.        тут у тебя будет задача
  56.  
  57.        как из (TaskType taskType, String... taskTexts)
  58.        получить (Tasks... tasks)
  59.  
  60.           вот решим эту задачу - сможешь внутри
  61.           given....(TaskType taskType, String... taskTexts)
  62.  
  63.           написать код в одну строчку
  64.           given(xxx(taskType, taskTexts))
  65.  
  66.           в given(Task...tasks) в качестве параметра можно передавать массив Task[] tasks
  67.           погугли про varargs in java
  68.  
  69.           реализуй метод xxx
  70.           возвращающий Task[]
  71.           с параметрами (TaskType taskType, String... taskTexts)
  72.  
  73.           в котором
  74.           объяви переменную типа Task[] и инициализируй ее как массив Task[....такого-то размера....]
  75.           какого - посмотри на параметры нашего метода
  76.  
  77.           в цикле обойди taskTexts
  78.           и каждый элемент массива заполни с помощью метода aTask
  79.  
  80.           верни полученный массив
  81.  
  82.           а далее - используй этот метод
  83.           внутри given...(TaskType taskType, String... taskTexts)
  84.  
  85.               given(xxx(taskType, taskTexts))
  86.  
  87.           Если тяжело сразу  xxx реализовать -
  88.           то для начала просто внутри givenAt....
  89.           реализуй этот код - собери массив Task[] по переданным параметрам
  90.  
  91.           И тогда будет что-то типа такого
  92.                 Task[] tasks = ....
  93.                 ....
  94.                 ....
  95.                 ....
  96.                 given(tasks)
  97. */
Advertisement
Add Comment
Please, Sign In to add comment