Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void prepare() {
- open(filter);
- /*
- if (!url().equals(filter)) {
- open(filter);
- }
- можно и так - так лишние открытия урла не будут происходить
- */
- *************************************
- public PreconditionBuilder atAllFilter() {
- return this;
- }
- /*
- тут тоже надо бы this.filter = ...;
- на случай, если вызов будет таким
- precondition().atActiveFilter().atAllFilter()
- понятно, что так смысла особого нет делать
- но - это возможно
- и даже при таких вариантах - мы должны таки на All фильтре оказаться
- (т к вызвали этот метод последним)
- а так - идеальный модуль Preconditions )
- */
- *****************************************
- @Test
- public void testDelete() {
- precondition().activeTasks("a", "b").atActiveFilter().prepare();
- page.delete("a");
- page.assertVisibleTasks("b");
- page.assertItemsLeft(1);
- }
- @Test
- public void testDelete() {
- precondition().completedTasks("a", "b").atCompletedFilter().prepare();
- page.delete("a");
- page.assertVisibleTasks("b");
- page.assertItemsLeft(0);
- }
- /*
- 2 видимые таски в списке, и удаляем первую таску
- лучше разнообразить
- например,
- для Completed фильтра
- 1 активная таска, и вторая - закомпличеная
- и вот эту вторую, единственную видимую таску
- */
- *******************************
- @Test
- public void testComplete() {
- precondition().activeTasks("a", "b").atAllFilter().prepare();
- page.toggle("a");
- page.assertTasks("a", "b");
- page.assertItemsLeft(1);
- }
- @Test
- public void testComplete() {
- precondition().activeTasks("a", "b").atActiveFilter().prepare();
- page.toggle("a");
- page.assertVisibleTasks("b");
- page.assertItemsLeft(1);
- }
- /*
- 2 активные таски, обе видимые
- комплитим - первую
- где разнообразие тестовых ситуаций?
- смотри прошлое ревью
- строки 155 - 164
- я обещала - придираюсь вот.
- */
- ***************************************
- @Test
- public void testCompleteAll() {
- precondition().activeTasks("a", "b").atAllFilter().prepare();
- Selenide.sleep(5000);
- page.toggleAll();
- page.assertTasks("a", "b");
- page.assertItemsLeft(0);
- }
- /*
- а вот это - очень плохо(
- sleep - это очень ненадежно
- с одной стороны - мы теряем время (далеко не факт - что столько времени нужно ожидать)
- с другой стороны - никто не гарантирует - что после слипа будет нужная тебе ситуация
- я так подозреваю, что ты как раз столкнулся с тем, о чем Яков говорил в видео
- придется поговорить и о несовершенствах реализации приложения todoMVC )
- давай вспомним самое начало - когда мы начинали гивен-метод
- if (!url().equals("https://todomvc4tasj.herokuapp.com")) {
- open("https://todomvc4tasj.herokuapp.com");
- }
- мы это сделали, чтоб лишний раз урл не открывать
- а в конце гивен-метода мы просто использовали переход на другой фильтр - клик на линке
- потом мы начали использовать вместо кликов по линкам для переходов на другой фильтр -
- открытие нужного урла - причем сразу
- и вот тут, когда мы получили максимально красивую реализацию -
- при прогоне тестов можем увидеть картину
- что после выполнения гивен-метода - действия падают...
- похоже, что на странице на конец гивен-метода - еще не все джаваскрипты страницы подгрузились
- слишком оптимальный гивен получили )))
- пока не нашла надежного способа дождаться - что страница после гивена готова к тесту
- иногда - помогало newTask.shouldBe(enabled)
- увы, не всегда...
- попробуй - возможно этого хватит
- еще вариант (еще не пробовала, но думаю - будет работоспособным) -
- проверить - соответствие размера списка тасок в билдере
- и списка тасок - на странице
- попробуй)
- слип - плохой вариант
- если совсем беда и не получается решить вопрос еще на уровне гивена
- то лучше вместо слипа - в тест-метод вставь проверку списка тасок - текстов тасок
- это - лучше
- */
- *************************
- @Test
- public void testConfirmEditByTab() {
- precondition().activeTasks("a").completedTasks("b").atAllFilter().prepare();
- page.startEdit("a", "a edited").pressTab();
- page.startEdit("b", "b edited").pressTab();
- page.assertTasks("a edited", "b edited");
- page.assertItemsLeft(1);
- }
- /*
- см строки 195-208 прошлого ревью
- */
Advertisement
Add Comment
Please, Sign In to add comment