Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void logon(String email, String passw){
- /*
- не сокращай слова - в именах параметров/переменных/методов/классов/...
- если сокращения - то какие-то общепринятые только
- password - лучше
- имя метода - мне кажется все же login )
- */
- *******************************************************************
- public static void openInbox(){
- public static void openSentFolder() {
- /*
- советую по Title искать элементы
- так будет точнее
- */
- ********************************
- public class BaseTest {
- {
- Configuration.timeout = 20000;
- Configuration.browser = "chrome";
- System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
- }
- /*
- все кроме Configuration.timeout = 20000; - универсально
- а Configuration.timeout = 20000; - именно для gmail-теста нужно
- я бы из этих соображения - строку Configuration.timeout = 20000;
- все же в тест-классе непосредственно держала
- т к - общее - в предке, а уточненное, нужное только в конкретном тест-классе - уже в конкретном тест-классе
- если б было несколько тест-классов - может и твое решение было ок )
- */
- ********************************************************
- public class GMailTest extends BaseTest{
- @Test
- public void testGmail() {
- /*
- testGmail - мы ничего не уточнили - имя тест-класса то же самое говорит
- тут уже про Gmail можно не писать
- мы тут тестим login, send, receive, search - можно так имя тест-метода и составить
- testLoginSendReceiveAndSearch
- а можно воспользоваться советами для е2е тестов (см faq)
- */
- open("https://gmail.com");
- logon("zfedorovska","Rom");
- /*
- вынеси тестовые данные - логин + пароль
- в отдельный класс
- перечитай задание
- в тест-методе - будешь просто использовать данные из этого класса с тестовыми данными
- ниже приведу советы по структуре проекта - тоже учти моменты
- еще - в качестве логина - можно использовать полный email
- он тебе и дальше пригодится)
- */
- /*
- запусти дважды тест
- он упадет)
- т к уже будет 2 письма с таким subject
- выход - использовать в каждом запуске тест-метода - уникальный subject
- например - добавь к тексту - что-то уникальное - дату-время в миллисекундах
- */
- emails.get(0).shouldHave(text("Life is good"));
- /*
- перед этой проверкой надо бы еще на кнопку refresh нажать
- т к может не хватить таймаута - для получения письма
- а так - принудительно получишь почту
- и проверишь - получили ли письмо
- http://joxi.ru/V2VBQLqf05vL92
- сама проверка - ок
- реализуй метод в пейдже
- */
- ...
- search("Life is good");
- emails.shouldHaveSize(1);
- /*
- тут мало проверить размер списка
- на еще важно - что в этом мейле - нужный нам текст
- а раз нам важен и размер списка и тексты -
- давай вспомним - как для todoMVC - мы одним махом это проверяли
- используя проверку assertTasks
- тут - можно похожую проверку реализовать
- единственное - что exactTexts нам не подойдет
- а вот texts - подойдет
- тоже - будет проверено - и размер и порядок и тексты
- но тексты = по вхождению
- */
- }
- ***************************************************
- /*
- Тут это, конечно, немного за уши притянуто
- Просто попробуем разделить функционал на несколько пейджей, чтоб понять,
- как это использовать и как оформлять код, когда используем несколько пейджей
- Ниже приведу код, когда используется несколько пейдж модулей
- обрати внимание на
- названия самих методов
- статик импорт не используем, в коде уточняем имя пейджа -
- это детализирует смысл вызова
- и когда методов в каждом из пейджей реально много -
- такой способ вызова позволяет легче ориентироваться в коде
- Gmail.visit();
- Gmail.logIn(TestData.email, TestData.password);
- Mails.send(TestData.email, subject);
- Menu.refresh();
- Mails.assertMail(0,subject);
- Menu.goToSent();
- Mails.assertMail(0,subject);
- Menu.goToInbox();
- Mails.searchBySubject(subject);
- Mails.assertMails(subject);
- */
- **************************************
- /*
- http://joxi.ru/nAyqEx7HXvxQoA
- вот пример хорошей структуры проекта
- в src \ main
- core - универсальное, что можно переиспользовать в разных проектах
- pages - пейджи тоже можно переиспользовать для других тестов этого же приложения
- в src \ test
- testdata - тестовые данные (если такие есть и они вынесены в отдельный класс)
- testconfigs - предки тест-класса (так можно их изолировать от собственно тест-классов - чтоб легче было ориентироваться
- про пекеджи еще немного)
- если GroupID = com.somesite
- а проект todomvctest
- то пакет корневой должен быть com.somesite.todomvctest
- логика - чтобы "не смешивались имена сущностей"
- внутри одной компании - может быть несколько проектов)
- и у всех у них один com.somesite - базовый пекедж
- но для каждого проекта должен быть свой “базовый пекедж проекта"
- иначе все смешается)
- важно то, что когда этот проект выльется в отдельную библиотеку,
- то не будет конфликтов при его подключении
- */
- **************************
- http://joxi.ru/Y2LXgYnfn3gpx2
- /*
- и вот это тоже подправь
- */
Advertisement
Add Comment
Please, Sign In to add comment