Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class GmailPageModuls{ // ranamed class
- /*
- В предыдущей версии мне название класса нравилось больше :)
- Комментарий - тоже ничему не помогает. Значит - не нужен
- */
- static long Timestamp = Instant.now().getEpochSecond();
- /*
- переменная должна начинаться с маленькой буквы + CamelCase (https://ru.wikipedia.org/wiki/CamelCase)
- она не должна быть в пейдж модуле - потому что она вспомогательная для получения уникального subject
- уникальный subject - это тестовые данные
- следовательно - лучше это перенести в тест, не стоит в пейдж модуль прятать тестовые данные
- стоит подумать - выносить это в переменную или все же реализовать метод, который будет генерировать уникальные subject
- если бы в тесте была задача послать 2 письма с уникальными subject - переменная тебе бы не помогла организовать уникальные данные дважды
- Я бы вынесла в метод с наглядным понятным названием и избавилась от комментов лишних :)
- А поскольку уникальный subject тебе нужен единожды - то тоже хороший вариант = коммент + строчка по генерации уникального subject
- Без всякой переменной. Даже наверное короче получится :)
- Оба варианта имеют право на жизнь. Выбери - какой тебе кажется лучше.
- */
- public static ElementsCollection mails = $$("[role=\"main\"] .zA");
- public static void signIn(String login, String password){
- $("#Email").setValue(login).pressEnter();
- $("#Passwd").setValue(password).pressEnter();
- }
- public static void sendMail(String email, String subject){
- $(byText("COMPOSE")).click();
- $(By.name("to")).setValue(email);
- $(byAttribute("aria-label", "Subject")).setValue(subject);
- /*
- для subject есть селектор получше :)
- посмотри на id, name, class, другие атрибуты и определись с лучшим селектором
- */
- $(byAttribute("role", "textbox")).setValue("Test");
- $(byText("Send")).click();
- }
- public static void findMail(String subject){
- $("#gbqfq").setValue(subject).pressEnter();
- /*
- Тоже есть селектор получше
- */
- }
- public static void refreshMailPage(){
- $(".gb_xb").click();
- /*
- Видимость этого элемента, похоже, зависит от оформления или настроек
- Подбери что-то более универсальное для гугл-аккаунта - просто рефреш страницы, или кнопки http://joxi.ru/E2pdR1lFBaGxp2
- */
- }
- public static void assertMailReceived(String sublect){
- /*
- посмотри на параметр - наверное, subject :)
- */
- mails.get(0).shouldHave(text(sublect));
- /*
- Пример - после нами посланного письма пришло еще письмо
- Неужели наше письмо не принято?
- */
- }
- }
- /*------------------------------------------------------------------------------------*/
- public class GmailTest{
- {
- Configuration.timeout = 15000;
- }
- @Test
- public void SendLetterTest() {
- /*
- С названием тест-метода не все ОК - мы логинимся, отправляем письмо, ищем письмо
- А название метода говорит, что тестили мы только отправку
- */
- /*
- Хочу в общем написать про комментарии в этом методе
- Они не помогают понять суть происходящего
- Тогда зачем они?
- */
- open("https://www.gmail.com"); //moved these methods to the general test from Before
- signIn(logIn, password);
- String subject = "Iriny's test" + Timestamp; // moved subject item from the modules as it's not a testing method
- /*
- Про это я тебе написала в комментах к Timestamp
- */
- /*
- неужели в logIn значение отличается от "[email protected]"?
- если отличается - стоит сделать равным "[email protected]" :)
- и использовать и здесь - переменную logIn
- */
- refreshMailPage(); // added page refresh before checking received mail
- assertMailReceived(subject);
- findMail(subject); // added additional search for received mail
- /*
- А результаты поиска проверить?
- */
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment