Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Test
- public void testTasksLifeCycle() {
- ...
- filterActive();
- assertNoTasks();
- add("b");
- /*
- тут не хватает проверки
- операция toggleAll(); - не проверяет операцию add("b");
- так что - нужно проверить состояние списка тасок
- */
- toggleAll();
- assertNoTasks();
- filterCompleted();
- assertTasks("a", "b");
- //reopen
- toggle("a");
- assertTasks("b");
- clearCompleted();
- assertNoTasks();
- filterAll();
- delete("a");
- /*
- придираться к этому не буду)
- но все равно опишу
- http://joxi.ru/xAe1zDPspXEXEA
- смотри = мы планировали smoke покрытие
- и если мы решили покрыть удаление таски в фиче-тесте
- то из е2е стоит это действие убрать
- ведь smoke покрытие подразумевает - что мы покрывем высокоприоритетные операции лишь единожды
- чтобы все было оптимально - отсюда delete("a"); стоит убрать
- и оставить - лишь проверку списка тасок после перехода на All фильтр
- */
- assertNoTasks();
- }
- ***********************************************
- @Test
- public void testEditAtAll(){
- add("a", "b");
- startEdit("b", "b-edited").pressEnter();
- assertTasks("a","b-edited");
- assertItemsLeft(2);
- }
- /*
- в целом - да, все ок
- единственный момент - я советую отделить предварительные действия от тестовых
- и использовать комментарий - //given
- будут еще задания - когда нам такие комментарии не понадобятся
- но сейчас - они будут уместны - т к из кода этого прямо не следует
- с учетом этого - получим
- */
- @Test
- public void testEditAtAll(){
- //given
- add("a", "b");
- startEdit("b", "b-edited").pressEnter();
- assertTasks("a","b-edited");
- assertItemsLeft(2);
- }
- ************************************************
- @Test
- public void testCancelEditAtAll(){
- add("a");
- startEdit("a", "a-edited").pressEscape();
- assertTasks("a");
- assertItemsLeft(1);
- }
- /*
- тоже придираться не буду
- но я бы планировала и реализовывала - покрыть это действие на Active фильтре
- из соображений - чтоб распределить поравномернее операции по разным фильтрам
- */
- *************************************************
- @Test
- public void testDeleteAtCompleted(){
- add("a", "b");
- toggleAll();
- filterCompleted();
- delete("a");
- assertTasks("b");
- assertItemsLeft(0);
- }
- /*
- реализация - ок
- единственное - как отмечала выше - советую подправить оформление
- */
- @Test
- public void testDeleteAtCompleted(){
- //given - completed tasks
- add("a", "b");
- toggleAll();
- filterCompleted();
- delete("a");
- assertTasks("b");
- assertItemsLeft(0);
- }
- **********************************
- /*
- Это к общему сведению)
- Есть разные способы выполнять предварительные действия
- Мы сейчас делаем это через действия на UI (User Interface)
- А есть еще методы - работать непосредственно с данными (далее вы такое тоже попробуете)
- Так вот через действия на UI - предварительные действия не быстрые и часто не достаточно надежные
- А через непосредственную работу с данными - предварительные действия быстрые и надежные
- Если предварительные действия медленные или не надежные
- То проверка в конце предварительных действий нужна
- А если мы уверены - что после предварительных действий гарантировано все ОК,
- то и проверок не надо после предварительных действий
- Но, поскольку наше приложение - простое
- Разумно не делать проверку в конце предварительных действий
- чтобы наши тесты были эффективнее
- Тестировали бы что-то типа соцсети и если бы предварительные действия были
- реализованы через UI - да, после предварительных действий было бы разумно
- выполнить проверку (проверка после предварительных действий нам позволяет отличить -
- ошибка возникла на этапе выполнения тестируемого действия, или все же раньше)
- */
Advertisement
Add Comment
Please, Sign In to add comment