julia_v_iluhina

Untitled

Jul 28th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.81 KB | None | 0 0
  1. public class GmailPageModuls{ // ranamed class
  2.  
  3.     /*
  4.         В предыдущей версии мне название класса нравилось больше :)
  5.        
  6.         Комментарий - тоже ничему не помогает. Значит - не нужен
  7.     */
  8.  
  9.     static long Timestamp = Instant.now().getEpochSecond();
  10.     /*
  11.         переменная должна начинаться с маленькой буквы + CamelCase (https://ru.wikipedia.org/wiki/CamelCase)
  12.         она не должна быть в пейдж модуле - потому что она вспомогательная для получения уникального subject
  13.         уникальный subject - это тестовые данные
  14.         следовательно - лучше это перенести в тест, не стоит в пейдж модуль прятать тестовые данные
  15.        
  16.         стоит подумать - выносить это в переменную или все же реализовать метод, который будет генерировать уникальные subject
  17.        
  18.         если бы в тесте была задача послать 2 письма с уникальными subject - переменная тебе бы не помогла организовать уникальные данные дважды
  19.        
  20.         Я бы вынесла в метод с наглядным понятным названием и избавилась от комментов лишних :)
  21.        
  22.         А поскольку уникальный subject тебе нужен единожды - то тоже хороший вариант = коммент + строчка по генерации уникального subject
  23.         Без всякой переменной. Даже наверное короче получится :)
  24.        
  25.         Оба варианта имеют право на жизнь. Выбери - какой тебе кажется лучше.
  26.     */
  27.     public static ElementsCollection mails = $$("[role=\"main\"] .zA");
  28.  
  29.     public static void signIn(String login, String password){
  30.         $("#Email").setValue(login).pressEnter();
  31.         $("#Passwd").setValue(password).pressEnter();
  32.     }
  33.  
  34.     public static void sendMail(String email, String subject){
  35.         $(byText("COMPOSE")).click();
  36.         $(By.name("to")).setValue(email);
  37.         $(byAttribute("aria-label", "Subject")).setValue(subject);
  38.         /*
  39.             для subject есть селектор получше :)
  40.             посмотри на id, name, class, другие атрибуты и определись с лучшим селектором
  41.         */
  42.         $(byAttribute("role", "textbox")).setValue("Test");
  43.         $(byText("Send")).click();
  44.     }
  45.  
  46.     public static void findMail(String subject){
  47.         $("#gbqfq").setValue(subject).pressEnter();
  48.         /*
  49.             Тоже есть селектор получше
  50.         */
  51.     }
  52.  
  53.     public static void refreshMailPage(){
  54.         $(".gb_xb").click();
  55.         /*
  56.             Видимость этого элемента, похоже,  зависит от оформления или настроек
  57.            
  58.             Подбери что-то более универсальное для гугл-аккаунта - просто рефреш страницы, или кнопки http://joxi.ru/E2pdR1lFBaGxp2
  59.         */
  60.     }
  61.  
  62.     public static void assertMailReceived(String sublect){
  63.         /*
  64.             посмотри на параметр - наверное,  subject :)
  65.         */
  66.         mails.get(0).shouldHave(text(sublect));
  67.         /*
  68.             Пример - после нами посланного письма пришло еще письмо
  69.            
  70.             Неужели наше письмо не принято?            
  71.         */
  72.     }
  73. }
  74.  
  75. /*------------------------------------------------------------------------------------*/
  76.  
  77. public class GmailTest{
  78.  
  79.     {
  80.         Configuration.timeout = 15000;
  81.     }
  82.  
  83.     @Test
  84.     public void SendLetterTest() {
  85.         /*
  86.             С названием тест-метода не все ОК - мы логинимся, отправляем письмо, ищем письмо
  87.             А название метода говорит, что тестили мы только отправку
  88.         */
  89.        
  90.         /*
  91.             Хочу в общем написать про комментарии в этом методе
  92.             Они не помогают понять суть происходящего
  93.             Тогда зачем они?
  94.         */
  95.         open("https://www.gmail.com");   //moved these methods to the general test from Before
  96.         signIn(logIn, password);
  97.  
  98.         String subject = "Iriny's test" + Timestamp; // moved subject item from the modules as it's not a testing method
  99.         /*
  100.             Про это я тебе написала в комментах к Timestamp
  101.         */
  102.         sendMail("[email protected]", subject);
  103.         /*
  104.             неужели в logIn значение отличается от "[email protected]"?
  105.            
  106.             если отличается - стоит сделать равным "[email protected]" :)
  107.            
  108.             и использовать и здесь - переменную logIn            
  109.         */
  110.         refreshMailPage();   // added page refresh before checking received mail
  111.         assertMailReceived(subject);
  112.         findMail(subject); // added additional search for received mail
  113.         /*
  114.             А результаты поиска проверить?
  115.         */
  116.  
  117.     }
  118.  
  119. }
Advertisement
Add Comment
Please, Sign In to add comment