Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void assertIsFirst(int index, String subject) {
- emails.get(index).$(".y6").shouldHave(exactText(subject));
- }
- /*
- этот метод мало чем отличается от assertEmail
- если бы нам нужно было проверить текст такого-то мейла - нам хватило бы assertEmail
- тут - и имя метода вводит в заблуждение
- как тебе проверка assertIsFirst(5, ...)
- так уж первое письмо проверим?
- да и с учетом того, что subject - уникальный
- то уточняться до $(".y6") - ни к чему
- достаточно проверки как в assertEmail
- чтобы проверить один мейл по такому-то индексу
- в конце сценария нам нужно было проверить
- что такое письмо - единственное
- нам нужно проверить что писем в списке = 1 штука
- и его текст вот такой-то
- вспомни todoMVC
- когда мы проверяли что в списке одна таска и ее текст такой-то
- (или в списке тасок ... тасок и их тексты такие-то)
- мы выполняли одну проверку
- $$(...).shouldHave(exactTexts(....))
- exactTexts - проверял и количество, и порядок, и сами тексты
- есть аналогичный кондишен texts
- он тоже проверяет и количество, и порядок, и сами тексты
- только тексты - на вхождение
- такого рода проверка подойдет и здесь
- да и в других местах - когда нужно будет проверкить состояние списка мейлов с несколькими мейлами
- тоже подойдет
- это будет универсальнее
- при этом - мы не потеряем ни в наглядности кода, ни в его лаконичности
- */
- ******************************************
- /*
- только будь внимателен к наименованиям параметров методов
- */
- public void login(String email, String pass) {
- /*
- не сокращай слова
- не pass, а password
- */
- public void send(String address, String subject) {
- /*
- тут ты уже оперируешь не email(как в прошлом методе), а address
- почему?
- насчет subject - тут все ок, именно subject мы и ждем
- */
- public void search(String subject){
- /*
- а вот тут - судя по реализации метода
- ты оперируешь не subject, а неким queryText or query
- если бы в строку поиска вводил запрос - subject:....
- то имя параметра subject - было бы уместным
- любой из этих вариантов - будет ок
- только правильно реализуй - имена должны четко соответствовать реализации
- */
- public void assertEmail(int index, String subject) {
- /*
- тут - то же самое
- второй параметр с точки зрения данного метода - это subject
- это некий текст, который входит в текст заголовка письма
- emailHeaderText, emailText, text - уместнее
- различай понятия
- что ты методу передаешь
- и как точнее назвать єто значение - с точки зрения самого метода
- и в том, и в том случае - не надо заужать или искажать смыслы
- да, мы вызываем assertEmail(0, subject)
- т к хотим проверить что значение subject - это часть текста заголовка нашего мейла
- мы же ведь внутри метода не уточняемся до поля subject и не сверяем на равенство
- потому - параметр метода нужно назвать не subject, а более соответствующе
- */
- ***************************************************
- Тут это, конечно, немного за уши притянуто
- Просто попробуем разделить функционал на несколько пейджей, чтоб понять,
- как это - использовать несколько пейджей
- и как оформлять код, когда используем несколько пейджей
- Ниже приведу код, когда используется несколько пейдж модулей
- обрати внимание на
- названия самих методов
- статик импорт не используем, в коде уточняем имя пейджа -
- это детализирует смысл вызова
- и когда методов в каждом из пейджей реально много -
- такой способ вызова позволяет легче ориентироваться в коде
- 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);
Advertisement
Add Comment
Please, Sign In to add comment