julia_v_iluhina

Untitled

Oct 27th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.32 KB | None | 0 0
  1. public void prepare() {
  2.  
  3.         open(filter);
  4. /*
  5.      if (!url().equals(filter)) {
  6.         open(filter);
  7.      }
  8.      можно и так - так лишние открытия урла не будут происходить
  9. */
  10. *************************************
  11. public PreconditionBuilder atAllFilter() {
  12.     return this;
  13. }
  14. /*
  15.     тут тоже надо бы this.filter = ...;
  16.  
  17.     на случай, если вызов будет таким
  18.     precondition().atActiveFilter().atAllFilter()
  19.     понятно, что так смысла особого нет делать
  20.     но - это возможно
  21.     и даже при таких вариантах - мы должны таки на All фильтре оказаться
  22.     (т к вызвали этот метод последним)
  23.  
  24.     а так - идеальный модуль Preconditions )
  25. */
  26. *****************************************
  27.     @Test
  28.     public void testDelete() {
  29.  
  30.         precondition().activeTasks("a", "b").atActiveFilter().prepare();
  31.  
  32.         page.delete("a");
  33.         page.assertVisibleTasks("b");
  34.         page.assertItemsLeft(1);
  35.     }
  36.  
  37.     @Test
  38.     public void testDelete() {
  39.  
  40.         precondition().completedTasks("a", "b").atCompletedFilter().prepare();
  41.  
  42.         page.delete("a");
  43.         page.assertVisibleTasks("b");
  44.         page.assertItemsLeft(0);
  45.     }
  46. /*
  47.     2 видимые таски в списке, и удаляем первую таску
  48.     лучше разнообразить
  49.  
  50.     например,
  51.     для Completed фильтра
  52.  
  53.     1 активная таска, и вторая - закомпличеная
  54.     и вот эту вторую, единственную видимую таску
  55. */
  56. *******************************
  57.     @Test
  58.     public void testComplete() {
  59.  
  60.         precondition().activeTasks("a", "b").atAllFilter().prepare();
  61.  
  62.         page.toggle("a");
  63.         page.assertTasks("a", "b");
  64.         page.assertItemsLeft(1);
  65.     }
  66.  
  67.     @Test
  68.     public void testComplete() {
  69.  
  70.         precondition().activeTasks("a", "b").atActiveFilter().prepare();
  71.  
  72.         page.toggle("a");
  73.         page.assertVisibleTasks("b");
  74.         page.assertItemsLeft(1);
  75.     }
  76.  
  77. /*
  78.     2 активные таски, обе видимые
  79.     комплитим  - первую
  80.  
  81.     где разнообразие тестовых ситуаций?
  82.     смотри прошлое ревью
  83.     строки 155 - 164
  84.     я обещала - придираюсь вот.
  85. */
  86. ***************************************
  87.     @Test
  88.     public void testCompleteAll() {
  89.  
  90.         precondition().activeTasks("a", "b").atAllFilter().prepare();
  91.         Selenide.sleep(5000);
  92.         page.toggleAll();
  93.         page.assertTasks("a", "b");
  94.         page.assertItemsLeft(0);
  95.     }
  96. /*
  97.     а вот это - очень плохо(
  98.     sleep - это очень ненадежно
  99.     с одной стороны - мы теряем время (далеко не факт - что столько времени нужно ожидать)
  100.     с другой стороны - никто не гарантирует - что после слипа будет нужная тебе ситуация
  101.  
  102.     я так подозреваю, что ты как раз столкнулся с тем, о чем Яков говорил в видео
  103.  
  104.     придется поговорить и о несовершенствах реализации приложения todoMVC )
  105.  
  106.         давай вспомним самое начало - когда мы начинали гивен-метод
  107.         if (!url().equals("https://todomvc4tasj.herokuapp.com")) {
  108.                 open("https://todomvc4tasj.herokuapp.com");
  109.         }
  110.         мы это сделали, чтоб лишний раз урл не открывать
  111.         а в конце гивен-метода мы просто использовали переход на другой фильтр - клик на линке
  112.  
  113.         потом мы начали использовать вместо кликов по линкам для переходов на другой фильтр -
  114.         открытие нужного урла - причем сразу
  115.  
  116.               и вот тут, когда мы получили максимально красивую реализацию -
  117.               при прогоне тестов можем увидеть картину
  118.               что после выполнения гивен-метода - действия падают...
  119.               похоже, что на странице на конец гивен-метода - еще не все джаваскрипты страницы подгрузились
  120.               слишком оптимальный гивен получили )))
  121.               пока не нашла надежного способа дождаться - что страница после гивена готова к тесту
  122.                 иногда - помогало newTask.shouldBe(enabled)
  123.                 увы, не всегда...
  124.                 попробуй - возможно этого хватит
  125.  
  126.               еще вариант (еще не пробовала, но думаю - будет работоспособным) -
  127.               проверить - соответствие размера списка тасок в билдере
  128.               и списка тасок - на странице
  129.  
  130.         попробуй)
  131.  
  132.         слип - плохой вариант
  133.         если совсем беда и не получается решить вопрос еще на уровне гивена
  134.         то лучше вместо слипа  - в тест-метод вставь проверку списка тасок - текстов тасок
  135.         это - лучше
  136. */
  137. *************************
  138.     @Test
  139.     public void testConfirmEditByTab() {
  140.  
  141.         precondition().activeTasks("a").completedTasks("b").atAllFilter().prepare();
  142.  
  143.         page.startEdit("a", "a edited").pressTab();
  144.         page.startEdit("b", "b edited").pressTab();
  145.         page.assertTasks("a edited", "b edited");
  146.         page.assertItemsLeft(1);
  147.     }
  148. /*
  149.     см строки 195-208 прошлого ревью
  150. */
Advertisement
Add Comment
Please, Sign In to add comment