Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void prepareTasks(Task... tasks) {
- if (!url().equals("c")) {
- open("https://todomvc4tasj.herokuapp.com/");
- }
- /*
- url().equals("c"))?
- подправь)
- */
- *********************
- public void givenAtAll(GivenHelpers.Task... tasks) {
- /*
- Почему не Task... tasks ?
- */
- ***************************
- @Test
- public void tasksLifeCycle() {
- prepareTasks();
- /*
- лучше быть последовательным)
- в тест-методах - вызываем гивен-методы
- технически - конечно безразлично
- но лучше принимать однородные решения
- а иначе - зачем мы вообще реализовывали givenAtAll(GivenHelpers.Task... tasks) ?
- собственно - ради этого
- чтобы во всех тест-методах мы оперировали гивен-методами
- */
- ***************************
- @Test
- public void editAtAll() {
- givenAtAll(ACTIVE, "1");
- edit("1", "1 edited");
- assertTasksAre("1 edited");
- assertItemsLeft(1);
- }
- @Test
- public void editAtActive() {
- givenAtActive(ACTIVE, "1");
- edit("1", "1 edited");
- assertTasksAre("1 edited");
- }
- /*
- мы тестируем - одно действие в этих тестах
- разнообразь тестовые ситуации
- в одном методе - работаем с единственно таской
- а во втором - со второй таской в списке
- писала про это в http://pastebin.com/zaC9GVAy, строки 176-183
- */
- **********************************
- http://joxi.ru/v29WjP9hG15WNr
- /*
- не вижу таких тест-методов
- тут - тоже - как и во всех фиче-тестах
- тестовая ситуация - и активные таски, и закомпличеные + на нужном фильтре
- тестовое действие - переход на нужный фильтр
- проверки - списка тасок и items left
- такой подход - когда мы фильтеринг будем проверять и на активных тасках, и на закомпличеных -
- проверит фильтеринг качественно - мы увидим как операция влияет на отображение тасок с любыми статусами
- */
- **************************
- @Test
- public void completeAtAll() {
- /*
- тестируем не completeAtAll
- а completeAllAtAll
- */
- givenAtAll(ACTIVE, "1", "2");
- toggleAll();
- assertTasksAre("1", "2");
- assertItemsLeft(0);
- /*
- с учетом тестов для переходов по фильтрам - єтих проверок достаточно
- если смотреть на все фиче-тесты в комплексе - это будет ок
- */
- filterCompleted();
- assertTasksAre("1", "2");
- /*
- а если хочется таки быть точнее - то можно так
- но - тогда и filterCompleted - это еще одно тестовое действие
- и так - получился не фиче-тест
- а такой небольшой е2е-тест
- если так делать - это надо учесть в покрытии (для такого перехода - уже не делать фиче-теста)
- ну и в названии тест-метода надо отразить - что не только completeAll покрыли
- но и переход на такой-то фильтр
- я вообще сторонник варианта с фиче-тестами)
- но и такой вариант имеет право на жизнь
- */
- }
- ************************************************
- @Test
- public void reopenAtAll() {
- givenAtAll(ACTIVE, "1");
- toggle("1");
- /*
- вообще-то тут мы закомпличиваем таску - т к в гивенах - мы создали активную
- значит toggle = закомплитит
- еще в на уровне гивена - создавай закомпличеную таску
- */
- assertTasksAre("1");
- /*
- проверяй items left - там где это возможно
- тут - возможно
- */
- }
- **********************************
- @Test
- public void clearCompletedAtAll() {
- givenAtAll(ACTIVE, "1", "2");
- toggleAll();
- assertTasksAre("1", "2");
- /*
- мы тестируем - clearCompleted
- потому - не надо уже покрывать toggleAll
- просто на уровне гивен-метода - создай пару тасок - кативную и закомпличеную
- и дальше - выполняй clearCompleted();
- и список тасок проверишь и items left
- и в clearCompletedAtActive() - похожие проблемы
- не забывай про разные тестовые ситуации)
- */
- clearCompleted();
- assertTasksEmpty();
- }
- ***********************************************
- @Test
- public void completeAtActive() {
- givenAtActive(ACTIVE, "1");
- toggle("1");
- assertTasksEmpty();
- assertItemsLeft(0);
- /*
- тут - уже точнее некуда)
- точно надо останавливаться)
- если говорить про тест complete на all фильтре
- то можно решить - что надо уточнить такие проверки
- то на других фильтрах - точно вот таких проверок достаточно
- */
- filterAll();
- assertTasksAre("1");
- /*
- может ты как раз и хотела вот так допокрыть фильтеринг
- лучше вынеси в фиче-тесты
- у них есть неоспоримое преимущество - каждая фича будет оттестирована независимо
- а вот в такой реализации - если тест упадет на первой операции
- то вторую мы уже не оттестим
- сделали небольшое количество е2е и допокрыли все фиче-тестами - хорошая стратегия
- и обеспечили хороший качественный фидбек по всем фичам
- и проверили интеграцию - как мы в одном многошаговом сценарии работаем
- */
- }
- ************************************
- @Test
- public void reopenAllAtCompleted() {
- givenAtCompleted(COMPLETED, "1", "2");
- toggleAll();
- assertTasksEmpty();
- assertItemsLeft(2);
- /*
- и вот тут - останавливаемся
- */
- filterActive();
- assertTasksAre("1", "2");
- }
- *************************
- @Test
- public void confirmEditPressingOutsideAtCompleted() {
- givenAtCompleted(COMPLETED, "1", "2");
- startEdit("1", "1 edited");
- $("#header>h1").click();
- /*
- Неплохой выбор элемента - на чем кликнуть
- нам надо кликнуть на чем-то таком, что даст нам только смену фокуса и более ничего не будет происходить
- но еще лучше - кликнуть на том, что мы уже используем
- вот например $("#new-todo")
- цель - оперировать меньшим количеством селекторов
- */
- ****************************************
- /*
- смотри сама - может сразу это же подправляй и в следующих работах
- или уже на уровне этой работы определимся
- и дальше просто перенесешь это
- */
Advertisement
Add Comment
Please, Sign In to add comment