Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.junit.Test; // Почему Test подсвечивается серым, как будто он не используется
- /*
- сравни -
- как подцвечивается сейчас - http://joxi.ru/p275M9zsoony5r (это не серый, а какой-то другой цвет, такой же и у самой аннотации)
- а это если не использовать аннотацию @Test - http://joxi.ru/12MDGYXuMMwebm (вот это - серый = не используется)
- просто цвета близкие
- а так - все ок
- */
- ***************
- public class TodoMVCTest {
- @Test
- public void testTasksLifeCycle() {
- open("https://todomvc4tasj.herokuapp.com/");
- add("1");
- edit("1", "1 edited");
- assertTasksAre("1 edited");
- toggle("1 edited");
- /*
- операция toggle("1 edited") - проверит операцию edit("1", "1 edited");
- потому - перед toggle - можно убрать assertTasksAre - используем неявную проверку через действие
- а вот после toggle - assertTasksAre - нужно
- тут - проверим часть логики, что на all фильтре - все таски вне зависимости от статуса отображаются
- а после перехода на Active фильтр - проверив состояние списка тасок -
- мы проверим и работу фильтеринга
- и как мы закомплитили таску
- */
- filterActive();
- // assertTasksEmpty() - падает данная проверка
- /*
- верно, такая проверка падает
- посмотри внимательно - и на текст сообщения, и на состояние списка тасок (HTML код посмотри в FireBug)
- что-то такое должен увидеть - http://joxi.ru/l2ZNaR0F83gJv2
- подумай, как уточнить проверки списка тасок - чтоб на любом фильтре корректно работали
- */
- clearCompleted();
- /*
- советую отложить удаление тасок - на конец сценария
- чем позже удалишь таску, тем больше на ней всякого можно проверить
- после clearCompleted() - тоже нужна проверка
- ведь стелующая операция не проверит результаты clearCompleted();
- */
- add("2");
- assertTasksAre("2");
- /*
- а вот тут - таска "2" - единственная видимая таска
- потому - операция cancelEdit("2" ...
- является неявной проверкой для add("2")
- советую - assertTasksAre - пропустить
- */
- cancelEdit("2", "2 edited");
- assertTasksAre("2");
- /*
- а вот тут - проверку пропускать денльзя, ты прав
- т к toggleAll() - не проверит операцию cancelEdit("2"
- */
- toggleAll();
- /*
- нужна проверка
- */
- filterCompleted();
- assertTasksAre("2");
- /*
- тут все ок
- перешли на нужный фильтр, выполнили проверку
- */
- toggle("2");
- //пробовал сделать проверку assertTasksEmpty() - падает, не знаю почему
- /*
- я выше писала - что нужно сделать, чтоб разобраться
- природа этой проблемы - одна и для Active и для Completed фильтра
- я бы на Completed фильтре, вот тут, советовала покрыть clearCompleted
- так получится более равномерное распределение операция по фильтрам
- в прошлый раз писала - почему это важно
- */
- filterAll();
- assertTasksAre("2");
- delete("2");
- assertTasksEmpty();
- /*
- тут - все ок
- */
- }
- /*
- покрытие - ок
- сценарий - ок (можно чуть улучшить - перенеси clearCompleted на Completed фильтр)
- есть проблема с реализацией проверки состояния списка
- про это нужно еще немного подумать
- поскольку проблема единственная - немного больше тебе подскажу
- Посмотри видео Якова про это - https://drive.google.com/file/d/0B8hgIBw8-V-AdGxxU1R3enl1RzQ/view?ts=567ab8d7
- мы можем быть максимально точными и держать 4 проверки
- 2 -
- в списке = такси с такими-то текстами
- в списке = пусто
- и еще 2 -
- в отфильтрованном по visible списке = таски с такими-то текстами
- в отфильтрованном по visible списке = пусто
- И за точность будем платить тем - что надо думать - когда какую проверку вызвать правильнее
- и если это делать бездумно - то при небольших изменениях сценариев - могут тесты падать на проверках,
- или второй вариант - не будем нормально пользоваться полученной точностью...
- мы можем исходить из того, что ошибку, когда невидимые таски копятся в списке - мы тестим на более низком уровне,
- и на UI уровне - нам не нужно до этого уточняться. Поэтому - мы будем держать всего 2 проверки
- в отфильтрованном по visible списке = таски с такими-то текстами
- в отфильтрованном по visible списке = пусто
- В таком случае - каждый раз понятно - какую проверку вызывать - получаем более KISS картину
- правда, платим за это точностью) Но - возможно - если мы уже отдельно это в тестах покрыли -
- что у нас не копятся невидимые таски - так мы и не платим ) И - тогда - все проще в написании тестов,
- и в их сопровождении.
- Тогда - поскольку обе проверки реализованы одинаково и других нету - можно из имен проверок скрыть этот нюанс
- и назвать их assertTasks и assertNoTasks (хотя в них работаем с отфильтрованным по visible списком тасок)
- */
- *********************************************
Advertisement
Add Comment
Please, Sign In to add comment