julia_v_iluhina

Untitled

Dec 7th, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.85 KB | None | 0 0
  1.   public static void assertLoggedIn(){
  2.         $(byText("COMPOSE")).shouldBe(visible);
  3.   }
  4. /*
  5.     тебе такой метод не понадобится
  6.  
  7.     далее по коду - идет нажатие на кнопку "COMPOSE"
  8.     а значит - видимость кнопки будет проверена к этот момент
  9.  
  10.     очень может быть  - тебе не хватало таймаута - и поэтому без такой проверки не проходил тест
  11.  
  12.     обрати внимание на условие задания - там рекомендуемый таймаут указан
  13.  
  14.     мне с моим аккаунтом подходит таймаут в 20 секунд - gmail не быстрый
  15. */
  16. *******************************
  17. $(By.xpath(".//textarea[contains(@aria-label, 'To')]"))
  18. /*
  19.    xpath - не понадобится
  20.     посмотри внимательно на атрибуты этого элемента и подусай как обойтись без xpath
  21. */
  22. *******************************
  23. $(By.xpath("(.//*[@aria-label='Message Body'])[2]")).shouldBe(visible).sendKeys(message);
  24. /*
  25.     само сообщение - не обязательно было заполнять
  26.  
  27.     если оставишь - постарайся обойтись без xpath
  28.  
  29.     я бы убрала - т к это мы в итоге - проверять не будем
  30.     именно из этих соображений - это лишнее действие
  31. */
  32. *****************************
  33. public static void assertMailExist(String subject){
  34. /*
  35.     проверять мы список мейлов будем несколько раз
  36.  
  37.     письмо есть во входящих
  38.     письмо есть в отправленых
  39.  
  40.     в результатах поиска - одно письмо и это наше письмо
  41.  
  42.     можно считать - что мы полностью контролируем поток писем для этого аккаунта
  43.  
  44.     первые 2 проверки = текст самого верхнего письма из списка писем содержит ...
  45.     третья проверка = полная аналогия проверок списка тасок в todoMVC
  46.     (правда, кондишен пригодится менее строгий, но с похожей функциональностью)
  47.  
  48.     таким образом - наши проверки - оперируют списком писем
  49.  
  50.     в пейдже создай переменную для списка писем, найи для коллекции подходящий селектор
  51.     причем - нужно - чтобы селектор нам обеспечивал
  52.                  http://joxi.ru/v29WjP9hG7GRNr
  53.                  http://joxi.ru/Vrwqg81HKZKjw2
  54.     т е - для списка мейлов - во всех режимах - inbox / sent / search - такой селектор подходит =
  55.     находит верное количество элементов и элемент = все письмо, а не только его subject
  56. */
  57. ************************************************************
  58.  private String generateSubject()
  59.  /*
  60.              Питання! Чи потрібно після виконнання тесту видаляти надіслане повідомлення?
  61.              Не змогла вирішити як краще зробити.
  62.  */
  63. /*
  64.     Хорошее решение в данном случае - оперировать уникальным Subject-ом
  65.     такой метод, генерирующий уникальные строки - мог бы и в других местах пригодиться
  66.  
  67.     как тебе такой вариант
  68.     метод String generateUniqueString(String prefix)
  69.     с очень похожей реализацией как у тебя
  70.  
  71.     и вызывать его - String subject = generateUniqueString("subject")
  72.  
  73.     цель префикса - чтобы сама уникальная строка была наглядна - в отчете легче читалась, к примеру
  74.  
  75.     такой метод generateUniqueString - универсальный
  76.  
  77.     его стоит разместить в классе-контейнере статических вспомогательных методов Helpers
  78.  
  79.     по твоему вопросу
  80.     поскольку уникальный subject - однозначно идентифицирует письмо - то удалять письмо не нужно
  81.  
  82.     а в жизни - нужно взвешивать - какой подход даст выигрыш -
  83.         либо генерация уникальных данных на каждый запуск теста
  84.         либо обеспечение тестовой ситуации - что на начало теста всегда нету такого-то письма / пустой ящик / ....
  85.         от многого зависит решение)
  86.  
  87.     мы - будем просто оперировать уникальным subject-ом
  88.     безо всяких удалений)
  89.  
  90.     но - вопрос - хороший)
  91.  
  92.     поскольку уникальный subject нужен лишь в нашем тест-методе
  93.     то и переменную autoGeneratedSubject - можно объявить внутри тест-метода
  94.     ну и назвать можно проще = subject
  95.     поскольку видно - что мы его сенерили, причем уникальным - тут уточняться излишне
  96.  
  97. */
  98. ****************************************
  99.     @Test
  100.     public void testGmailSendAndSearchTask(){
  101.     /*
  102.         про Gmail - написали на уровне имени тест-класса и хватит
  103.  
  104.         мы тут тестируем - login, send, receive, searсh
  105.         можно перечислить все
  106.         а можно поступить как и раньше мы для е2е тестов делали (см фак - по неймингу)
  107.     */
  108. ***********************************
  109.         visit("inbox");
  110.         visit("sent");
  111.         /*
  112.             переходы в папки inbox и sent - реалищуй не через открытие урла
  113.             а через работу на UI - как это обычно пользователь и делает
  114.  
  115.             после отправки письма мы и так в inbox
  116.             перед проверкой хорошо бы принудительно получить почту
  117.                         почта обновляется согласно настройке аккаунта
  118.                         не факт - что таймаута хватит - чтобы отправленное нами письмо отразилось в Inbox
  119.  
  120.                         перед проверкой - что письмо пришло
  121.                         хорошо выполнить действие - принудительно получить почту = обновить -
  122.                         нажать на кнопку - http://joxi.ru/V2VBQLqf05vL92
  123.         */
  124. ********************************
  125. /*
  126.     и еще кусочек не реализован - search the arrived mail by topic and ensure only 1 is present in search results
  127.    
  128.     т к ресь про arrived mail
  129.     то нужно вернуться в inbox и затем с помощью строки поиска - выполнить поиск
  130.     и выполнить проверку
  131.     про проверку - выше писала
  132. */
Advertisement
Add Comment
Please, Sign In to add comment