julia_v_iluhina

Untitled

Sep 10th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.47 KB | None | 0 0
  1. public class BaseTest extends ConciseAPI {
  2. ...
  3.     @Override
  4.     public WebDriver getDriver() {
  5.         return driver;
  6.     }
  7. }
  8.  
  9. public class GmailTest extends BaseTest{
  10.  
  11.     @Override
  12.     public WebDriver getDriver() {
  13.         return driver;
  14.     }
  15.  
  16. /*
  17.     getDriver() - уже реализован в BaseTest
  18.     и правильно - т к это общая логика для потомков класса BaseTest
  19.     и ей место в классе BaseTest
  20.  
  21.     getDriver() в GmailTest уже не нужен
  22. */
  23. ***********************
  24.  
  25. src/main/java/core/BaseTest.java
  26.  
  27. /*
  28.     предки тест-классов - даже универсальные
  29.     должны располагаться в ветке проекта src \ test
  30.  
  31.     посмотри на  описание хорошей сруктуры проекта еще раз (приведу ниже)
  32. */
  33. ****************************
  34.  
  35. public static ExpectedCondition<WebElement> listNthElementHasText(final By elementsLocator, final int index, final String expectedText) {
  36.  ...
  37.             public String toString() {
  38.                 return String.format("element of list located ['%s'] should have (\'%s\') text, " +
  39.                         "while actual text is ('%s')",elementsLocator, expectedText, actualText);
  40.             }
  41. /*
  42.     про index - нету в сообщении
  43.  
  44.     что-то такое реализуй
  45.  
  46.     element by index [index] of list located [elementsLocator]
  47.     should have text [expectedText]
  48.     while actual text is [actualText]
  49.  
  50.     я тут квадратные скобки употребляю - чтоб показать - что вот сюда надо бы подставить значение
  51.     стоит ли их употреблять в самом сообщении - еще вопрос..
  52. */
  53. *******************************************
  54. public class Emails extends BasePage {
  55. /*
  56.     это я пропустила(
  57.  
  58.     если ты используешь пейдж как пейдж-объект
  59.     то название класса - должно заканчиваться на Page
  60.  
  61.     если ты используешь пейдж как пейдж-модуль
  62.     то - вот этого Page уже не надо
  63.  
  64.     в этой версии (и прошлой - тоже) - ты используешь пейджи-объекты
  65.  
  66.         потому -
  67.         не Emails
  68.         а EmailsPage
  69.  
  70.     касается всех пейджей
  71. */
  72. ***********************************
  73. public void send(String email, String subject) {
  74.         ...
  75.         $(By.id(":lo")).click();
  76. }
  77. /*
  78.     помнится, я писала про это
  79.     $(By.id(":lo")) - реализуй нагляднее
  80.  
  81.     $(byText("Отправить")).click(); - у тебя уже была такая версия
  82.  
  83. */
  84. ****************************************
  85. http://joxi.ru/nAyqEx7HXvxQoA
  86. http://prnt.sc/bvuytd
  87.  
  88. вот пример хорошей структуры проекта
  89.  
  90. в src \ main
  91.  
  92.   core - универсальное, что можно переиспользовать в разных проектах
  93.   pages - пейджи тоже можно переиспользовать для других тестов этого же приложения
  94.  
  95.  
  96. в src \ test
  97.  
  98.   testdata - тестовые данные (если такие есть и они вынесены в отдельный класс)
  99.   testconfigs - предки тест-класса (так можно их изолировать от  собственно тест-классов - чтоб легче было ориентироваться
  100.  
  101.  
  102. про пекеджи еще немного)
  103. если GroupID = com.somesite
  104. а проект todomvctest
  105. то пакет корневой должен быть com.somesite.todomvctest
  106.  
  107. логика  - чтобы "не смешивались имена сущностей"
  108.  
  109. внутри одной компании - может быть несколько проектов)
  110. и у всех у них один com.somesite  - базовый пекедж
  111. но для каждого проекта должен быть свой  “базовый пекедж проекта"
  112. иначе все смешается)
  113. важно то, что когда этот проект выльется в отдельную библиотеку,
  114. то не будет конфликтов при его подключении
Advertisement
Add Comment
Please, Sign In to add comment