Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private Task aTask(TaskStatus taskStatus, String taskText)
- private Task[] allTasks(TaskStatus taskStatus, String... taskTexts) {
- /*
- раз для первого метода посчитали хорошим именем aTask
- то для второго метода - можно такое имя использовать - aTasks
- можно и более стандартно - getTasks (имя метода = что делаем + уточнения)
- allTasks - дает некую неоднозначность...
- но настаивать не буду
- */
- *****************
- private void givenAtActive(Task... tasks) {
- given(tasks);
- }
- private void givenAtCompleted(Task... tasks) {
- given(tasks);
- }
- /*
- второй строкой в єтих методах - должен быть переход на нужный фильтр
- и тогда в тесте
- @Test
- public void testDeleteAtCompleted() {
- givenAtCompleted(aTask(COMPLETED, "A"), aTask(COMPLETED, "B"));
- filterCompleted();
- delete("A");
- assertTasks("B");
- assertItemsLeft(0);
- }
- вместо
- given(COMPLETED, "A", "B");
- filterCompleted();
- будешь применять
- givenAtCompleted(COMPLETED, "A", "B");
- собственно - ради этого и городили огород)
- в данном случае - filterCompleted() - еще подготовительное действие
- */
- ********************************************
- @Test
- public void testTasksCommonFlow() {
- /*
- тут тоже вызывай given()
- см строки 164-195 прошлого ревью
- */
- *************************************************
- /*
- по покрытию
- хорошо бы вернуться к тест-плану
- ты уже его в корзину переместил)
- https://docs.google.com/spreadsheets/d/1ZnMTTK9pSvGuo2OAKMmA1xCa5_gIWvdK5u5T9xnIxCU/edit#gid=0
- я на втором листе - нарисовала - как при таких приоритетах, как ты проставил
- реализовать optimized full coverage
- еще картинка
- http://joxi.ru/YmEnRaLFZpvOd2
- на случай - если файл твой документ таки погибнет)
- можешь и не оптимизировать покрытие
- тогда надо будет покрыть и остальные белые ячейки
- (а то и все зеленые тоже - если покрывать фиче-тестами и покрытое в е2е в том числе)
- принцип оптимизации - описывала в прошлый раз
- см прошлое ревью, строки 199-223
- */
- /*
- пример - нам нужны 3 фиче-теста для cancel edit
- для фиче-тестов - которые тестируют одно на разных контекстах
- старайся обеспечить разную тестовую ситуацию
- например
- работаем с единственной таской
- работаем со второй таской
- работаем с единственной видимой таской (а есть еще и не видимые)
- таким образом мы улучшим покрытие, не увеличивая общего количества тест-методов
- также эффективно будет покрыть и проверку items left счетчика
- если бы мы отдельно писали тесты для этого
- то фактически - пришлось бы делать то же самое в рамках предварительных действий
- потому - разумно второй проверкой по пути проверить и items left
- эти же принципы примени и для остальных фиче-тестов
- */
- @Test
- public void testCancelEditAtAll() {
- givenAtActive(aTask(ACTIVE, "B"), aTask(COMPLETED, "C"));
- cancelEdit("C", "C Edited");
- assertTasks("B", "C");
- assertItemsLeft(1);
- }
- @Test
- public void testCancelEditAtActive() {
- givenAtActive(aTask(COMPLETED, "A"), aTask(ACTIVE, "B"));
- cancelEdit("B", "B Edited");
- assertTasks("B");
- assertItemsLeft(1);
- }
- @Test
- public void testCancelEditAtCompleted() {
- givenAtCompleted(COMPLETED , "C");
- cancelEdit("C", "C Edited");
- assertTasks("C");
- assertItemsLeft(0);
- }
- *******************************************
- @Test
- public void testAddAtCompletedSecondMethod() {
- given(COMPLETED, "A", "B");
- filterCompleted();
- assertTasks("A", "B");
- assertItemsLeft(0);
- }
- /*
- не факт - что нужно покрывать Add - если оптимизируем покрытие
- предположим - нужно
- в этом методе - нету тестируемого действия - добавления таски
- то, что мы в предварительных действиях заполнили локал сторидж -
- так это мы только тестовую ситуацию создали
- тестируемое действие - именно вызов add
- чтобы покрыть полностью - добавление таски
- нужно 3 метода
- testAddAtAll
- testAddAtActive
- testAddAtCompleted
- ну и в одном случае -
- добавляем первую таску
- в другом -
- добавляем вторую при существующих не видимых
- в третьем -
- добавляем не первую таску
- ну и по возможности - со статусами тасок тоже варьируем - чтоб максимально по-разному все было
- */
- *********************
- /*
- отдельно заострю внимание на тестах фильтеринга
- схема теста
- тестируем переход с фильтра1 на фильтр2
- предварительные действия -
- несколько тасок с разными статусами
- (2 достаточно, можно в одном из таких тестов - чуть усугубить - 4 таски задать
- чтоб не единственная таска отображалась в списке и не единственная таска скрывалась)
- + стартуем на фильтре 1 - соответсвтующий гивен вызывай
- тестируемое действие - переход на фильтр 2
- проверки - состояние списка тасок + items left
- оперируя тестовой ситуацией - когда есть таски с разными статусами - ты точнее всего проверишь фильтрацию
- т к гарантированно меняется состояние списка
- */
Advertisement
Add Comment
Please, Sign In to add comment