yashaka

Untitled

Sep 15th, 2016
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.58 KB | None | 0 0
  1. package com.mytests;
  2.  
  3. import org.junit.Test;
  4. import org.openqa.selenium.By;
  5.  
  6. import static com.codeborne.selenide.Selenide.open;
  7. import static com.codeborne.selenide.Selenide.$;
  8.  
  9. public class TodoMVCTest {
  10.     @Test
  11.     public void testCreateTask() {
  12. /*
  13. почитай в FAQ о подборе имен ;)
  14. */
  15.         /*
  16.         1 create task1
  17.         2 create task2
  18.         3 create task3
  19.         4 create task4
  20.          */
  21.         open("https://todomvc4tasj.herokuapp.com/#/");
  22.         $("#new-todo").setValue("task1").pressEnter();
  23.         $("#new-todo").setValue("task2").pressEnter();
  24.         $("#new-todo").setValue("task3").pressEnter();
  25.         $("#new-todo").setValue("task4").pressEnter();
  26.  
  27.         //5 delete task2
  28.         $(By.xpath("//*[@id='todo-list']/li[2]/div/label")).hover();
  29. /*
  30. Насчет икспасов почитай вот это: http://automated-testing.info/t/pomogite-razobratsya-s-problemoj-czikla-v-selenide/10467/8
  31. если кратко - то в тестах самое важное - это читабельность
  32. потому что их много, их пишут разные люди, они частно меняются - поэтому по факту нет времени в них вдумываться, они должны
  33. быть буквально - очевидными
  34. также обычно лаконичность - первый друг читабельности (если при этом ее, читабельность, не нарушает)
  35.  
  36. а икспасы абсолютно не очевидны, громоздки и содержать не нужную информацию (без которой можно обойтись)
  37. так что переделывай все на цсс ;)
  38. */
  39.         $(By.xpath("//*[@id='todo-list']/li[2]/div/button")).hover().click();
  40. /*
  41. клик и так подефолту делает ховер, поэтому еще раз его делать не нужно
  42. */
  43.  
  44.         //6 mark task4 as completed
  45.         $(By.xpath("//*[@id='todo-list']/li[3]/div/label")).hover();
  46. /*
  47. задай себе вопрос - зачем реально был нужен ховер в удалении?
  48. а теперь подумай - разве здесь такая же ситуация?
  49. почитай в FAQ вдруг что о реализации удаления, если будет не очевидно в чем дело...
  50. */
  51.         $(By.xpath("//*[@id='todo-list']/li[3]/div/input")).hover().click();
  52.  
  53.         //7 clear completed
  54.         $(By.xpath("//*[@id='todo-list']/li[3]/div/label")).hover();
  55.         $(By.xpath("//*[@id='todo-list']/li[3]/div/button")).hover().click();
  56.  
  57.         //8 mark all as completed
  58.         $(By.xpath("//*[@id='todo-list']/li[1]/div/label")).hover();
  59.         $(By.xpath("//*[@id='todo-list']/li[1]/div/input")).hover().click();
  60.         $(By.xpath("//*[@id='todo-list']/li[2]/div/label")).hover();
  61.         $(By.xpath("//*[@id='todo-list']/li[2]/div/input")).hover().click();
  62.  
  63.         //9 clear completed
  64.         $(By.xpath("//*[@id='todo-list']/li[1]/div/label")).hover();
  65.         $(By.xpath("//*[@id='todo-list']/li[1]/div/button")).hover().click();
  66.         $(By.xpath("//*[@id='todo-list']/li[1]/div/label")).hover();
  67.         $(By.xpath("//*[@id='todo-list']/li[1]/div/button")).hover().click();
  68.     }
  69. }
  70.  
  71. /*
  72. у тебя во всем тесте нет ни одной явной проверки
  73. а тест - это ведь не только шаги, а и сравнение актуального результата с ожидаемым ;)
  74. */
Advertisement
Add Comment
Please, Sign In to add comment