yashaka

Untitled

Feb 18th, 2017
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. @Test
  2. public void testDelete() {
  3. // givenAtCompleted(COMPLETED,"1", "2");
  4. // given(new Task(ACTIVE, "1"),new Task(COMPLETED, "2"),new Task(COMPLETED, "3"));
  5. given(Task.active("1"));
  6. add("2","3");
  7. toggle("2");
  8. toggle("3");
  9. filterCompleted();
  10. assertItemsLeft(1);
  11. delete("2");
  12. assertVisibleTasksAre("3");
  13. assertItemsLeft(1);
  14. }
  15.  
  16. вот смотри, этот тест тестирует удаление... его имя об этом говорит: testDelete
  17.  
  18. кстати, видишь что слово Test повторяется
  19. @Test и тут
  20. testDelete и тут
  21.  
  22. это значит что второй раз его смысла писать реально нет, ну это такое :)
  23.  
  24. так вот...
  25. мы тестируем удаление... значит добавление тестировать не нужно...
  26. значит есть смысл добавить задачи не через юай а через наши гивены... типа "прямой записью в базу данных"
  27. тоже касается и таглов...
  28.  
  29. а у тебя как? вот так:
  30.  
  31. given(Task.active("1"));
  32. add("2","3");
  33. toggle("2");
  34. toggle("3");
  35.  
  36. в чем же смысл тогда гивенов был?
  37.  
  38. как раз в том, что бы все задачи за раз БЫСТРО добавить, например так:
  39. given(Task.active("1"), Task.completed("2"), Task.completed("3"))
  40.  
  41. почему ты так тогда не сделал...?
  42.  
  43. более того...
  44.  
  45. ты реально же не просто удаление тестируешь, а удаление на комплитед фильтре... почему тогда в имени тест метода нет об этом информации?
  46. имена же методов должны отображать то что у них внутри...
  47.  
  48. более того... у тебя же там отдельно есть givenAtCompleted
  49. ...
  50.  
  51. ****
  52.  
  53. for (Task task : tasks) {
  54. results = results + task.toString() + ",";
  55. }
  56.  
  57. помнишь я тебе говорил что task.toString() не обязательно в таких случаях скорее всего, достаточно просто task
  58. toString джавой визовется автоматически...
  59.  
  60. вот попробуй так сделать. оно должно заработать
  61.  
  62. ***
  63.  
  64. Дальше... Почитай о работе со стрингами в циклах... там у них есть проблемы... они сильно много памяти жрут...
  65. более правильно использовать для таких "сложно составных стрингов" - StringBuilder
  66. погугли о нем, и переделай свой код так что бы он его использовал
  67. так более правильно
  68. это важно
  69. на собеседованиях могут спрашивать такое по джаве
  70.  
  71. ***
  72.  
  73. (Task...tasks)
  74.  
  75. принято после трех точек ставить пробел
  76.  
  77. ***
  78. @Step
  79. public void given ( boolean taskType, String...taskTexts){
  80. Task[] tasks = new Task[taskTexts.length];
  81.  
  82. for (int i = 0; i < taskTexts.length; i++) {
  83. tasks[i] = new Task(taskType, taskTexts[i]);
  84. }
  85. given(tasks);
  86. }
  87.  
  88. такой метод пока что важен как вспомагательный...
  89. но использовать его в коде смысла нет...
  90.  
  91. лучше создать более красивые
  92. public void givenActive (String...taskTexts){
  93. public void givenCompleted (String...taskTexts){
  94.  
  95. точно так же как мы создали Task.active Task.completed
  96. я тебе об этом уже писал...
Advertisement
Add Comment
Please, Sign In to add comment