julia_v_iluhina

Untitled

Sep 13th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.61 KB | None | 0 0
  1.  public class ToDoMvcTest {
  2.  
  3.  
  4.     @Test
  5.     public void testCreateTask() {
  6.     /*
  7.         имя тест-метода должно отражать - что мы в нем тестируем
  8.         а мы тут тестируем - далеко не только создание тасок
  9.  
  10.         и если в имени тест-метода мы наснем перечислять - что же мы тестируем -
  11.         получится длинновато)
  12.  
  13.         выход есть)
  14.         почитай вот это
  15.         https://docs.google.com/document/d/10qSwWTQ6pGfVZSwOes-1QSmdflMiGD2U_y53VHq2m20/edit#bookmark=id.txqig9rkgybo
  16.         у нас - как раз е2е тест
  17.     */
  18.  
  19.         open("https://todomvc4tasj.herokuapp.com/");
  20.  
  21.         $("#new-todo").setValue("task1").pressEnter();
  22.         $("#new-todo").setValue("task2").pressEnter();
  23.         $("#new-todo").setValue("task3").pressEnter();
  24.         $("#new-todo").setValue("task4").pressEnter();
  25.  
  26.         $$("#todo-list>li").shouldHave(
  27.         texts("task1", "task2" , "task3", "task4"));
  28.         /*
  29.             спорно - стоило ли переносить код на 2 строки)
  30.  
  31.             в данном случае - и в одну строку было бы ок
  32.  
  33.             существуют общепринятые правила форматирования кода
  34.             стоит их придерживаться - для большинства код в таком виде -
  35.             имеет наиболее читабельный вид
  36.             чтобы код привести к такому виду - в IntelIJ Idea
  37.             выдели код и в меню code->reformat code
  38.             обрати внимание - что изменится
  39.  
  40.             по проверке
  41.             неплохо выбрал кондишен -
  42.             так мы проверим количество, порядок и сами тексты
  43.             единственное - тексты сравним не на равенство, а на вхождение
  44.             (текст элемента содержит такой-то текст)
  45.  
  46.             а еще точнее - проверить именно на равенство
  47.             есть аналогичный кондишен exactTexts
  48.             который как раз тексты сверяет на равенство
  49.             и при этом - так же - проверяет
  50.             количество, порядок и тексты
  51.  
  52.             это учти и в следующих проверках
  53.         */
  54.  
  55.         $("#todo-list>li:nth-child(2)").hover();
  56.         $("#todo-list>li:nth-child(2) .destroy").click();
  57.  
  58.         $$("#todo-list>li").shouldHave(
  59.         texts("task1", "task3", "task4"));
  60.  
  61.         $("#todo-list>li:nth-child(3)>div>.toggle").click();
  62.         /*
  63.             в этом селекторе - тоже можно обойтись без div
  64.         */
  65.  
  66.         $("#clear-completed").click();
  67.  
  68.         $$("#todo-list>li").shouldHave(
  69.                 texts("task1", "task3"));
  70.  
  71.         $("#toggle-all").click();
  72.  
  73.         $("#clear-completed").click();
  74.  
  75.         $$("#todo-list>li").shouldBe(empty);
  76.  
  77.     }}
  78.  
  79. /*
  80.     по поводу комментариев и пропусков строк
  81.  
  82.     да, лишних комментариев - писать не нужно
  83.     а в следующих версиях - мы существенно уменьшим количество комментариев
  84.  
  85.     и в комментариях лишнего писать не нужно
  86.     только важное и не очевидное
  87.     пока - из кода не очень понятно - что мы делаем с тасками
  88.     вот только это и стоит прокомментировать
  89.  
  90.     про пропуски строк в коде
  91.     это - хорошее средство форматирования
  92.     так код можно разбить на блоки - тем самым облегчить его восприятие
  93.     но и лишних пропусков нету смысла делать - мы должны видеть эти блоки
  94.     блок = логически цельный кусок кода
  95.  
  96.     я ниже приведу вариант твоего решения с достаточно наглядным оформлением
  97.     сам код - править не буду)
  98.     что поправить  - см выше)
  99.     тут - речь только про оформление
  100. */
  101.  
  102.         open("https://todomvc4tasj.herokuapp.com/");
  103.  
  104.         //add
  105.         $("#new-todo").setValue("task1").pressEnter();
  106.         $("#new-todo").setValue("task2").pressEnter();
  107.         $("#new-todo").setValue("task3").pressEnter();
  108.         $("#new-todo").setValue("task4").pressEnter();
  109.         $$("#todo-list>li").shouldHave(texts("task1", "task2" , "task3", "task4"));
  110.  
  111.         //delete
  112.         $("#todo-list>li:nth-child(2)").hover();
  113.         $("#todo-list>li:nth-child(2) .destroy").click();
  114.         $$("#todo-list>li").shouldHave(texts("task1", "task3", "task4"));
  115.  
  116.         //complete & clear
  117.         $("#todo-list>li:nth-child(3)>div>.toggle").click();
  118.         $("#clear-completed").click();
  119.         $$("#todo-list>li").shouldHave(texts("task1", "task3"));
  120.  
  121.         //complete all & clear
  122.         $("#toggle-all").click();
  123.         $("#clear-completed").click();
  124.         $$("#todo-list>li").shouldBe(empty);
Advertisement
Add Comment
Please, Sign In to add comment