julia_v_iluhina

Untitled

Nov 14th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.34 KB | None | 0 0
  1. public void assertIsFirst(int index, String subject) {
  2.         emails.get(index).$(".y6").shouldHave(exactText(subject));
  3. }
  4. /*
  5.     этот метод мало чем отличается от assertEmail
  6.     если бы нам нужно было проверить текст такого-то мейла - нам хватило бы assertEmail
  7.  
  8.     тут - и имя метода вводит в заблуждение
  9.     как тебе проверка assertIsFirst(5, ...)
  10.     так уж первое письмо проверим?
  11.  
  12.     да и с учетом того, что subject - уникальный
  13.     то уточняться до $(".y6") - ни к чему
  14.     достаточно проверки как в assertEmail
  15.     чтобы проверить один мейл по такому-то индексу
  16.  
  17.     в конце сценария нам нужно было проверить
  18.     что такое письмо - единственное
  19.         нам нужно проверить что писем в списке = 1 штука
  20.         и его текст вот такой-то
  21.                 вспомни todoMVC
  22.                 когда мы проверяли что в списке одна таска и ее текст такой-то
  23.                 (или в списке тасок ... тасок и их тексты такие-то)
  24.                 мы выполняли одну проверку
  25.                 $$(...).shouldHave(exactTexts(....))
  26.                 exactTexts - проверял и количество, и порядок, и сами тексты
  27.                 есть аналогичный кондишен texts
  28.                 он тоже проверяет и количество, и порядок, и сами тексты
  29.                 только тексты - на вхождение
  30.                
  31.                 такого рода проверка подойдет и здесь
  32.                 да и в других местах - когда нужно будет проверкить состояние списка мейлов с несколькими мейлами
  33.                 тоже подойдет
  34.                
  35.                 это будет универсальнее
  36.                 при этом - мы не потеряем ни в наглядности кода, ни в его лаконичности
  37. */
  38. ******************************************
  39. /*
  40.     только будь внимателен к наименованиям параметров методов
  41.  
  42.  
  43. */
  44.  
  45.  
  46. public void login(String email, String pass) {
  47. /*
  48.     не сокращай слова
  49.     не pass, а password
  50. */
  51.  
  52.     public void send(String address, String subject) {
  53. /*
  54.     тут ты уже оперируешь не email(как в прошлом методе), а address
  55.     почему?
  56.  
  57.     насчет subject - тут все ок, именно subject мы и ждем
  58. */
  59.     public void search(String subject){
  60. /*
  61.     а вот тут - судя по реализации метода
  62.     ты оперируешь не subject, а неким queryText or query
  63.  
  64.     если бы в строку поиска вводил запрос - subject:....
  65.     то имя параметра subject - было бы уместным
  66.    
  67.     любой из этих вариантов - будет ок
  68.     только правильно реализуй - имена должны четко соответствовать реализации
  69. */
  70.  
  71.     public void assertEmail(int index, String subject) {
  72. /*
  73.     тут - то же самое
  74.     второй параметр с точки зрения данного метода - это subject
  75.     это некий текст, который входит в текст заголовка письма
  76.     emailHeaderText, emailText, text - уместнее
  77.  
  78.     различай понятия
  79.         что ты методу передаешь
  80.         и как точнее назвать єто значение - с точки зрения самого метода
  81.  
  82.     и в том, и в том случае - не надо заужать или искажать смыслы
  83.  
  84.     да, мы вызываем   assertEmail(0, subject)
  85.     т к хотим проверить что значение  subject - это часть текста заголовка нашего мейла
  86.     мы же ведь внутри метода не уточняемся до поля subject и не сверяем на равенство
  87.     потому - параметр метода нужно назвать не subject, а более соответствующе
  88. */
  89. ***************************************************
  90.  
  91. Тут это, конечно, немного за уши притянуто
  92.             Просто попробуем разделить функционал на несколько пейджей, чтоб понять,
  93.             как это - использовать несколько пейджей
  94.             и как оформлять код, когда используем несколько пейджей
  95.  
  96.             Ниже приведу код, когда используется несколько пейдж модулей
  97.             обрати внимание на
  98.                 названия самих методов
  99.  
  100.                 статик импорт не используем, в коде уточняем имя пейджа -
  101.                 это детализирует смысл вызова
  102.                 и когда методов в каждом из пейджей реально много -
  103.                 такой способ вызова позволяет легче ориентироваться в коде
  104.  
  105.                     Gmail.visit();
  106.  
  107.                     Gmail.logIn(TestData.email, TestData.password);
  108.  
  109.                     Mails.send(TestData.email, subject);
  110.  
  111.                     Menu.refresh();
  112.                     Mails.assertMail(0,subject);
  113.  
  114.                     Menu.goToSent();
  115.                     Mails.assertMail(0,subject);
  116.  
  117.                     Menu.goToInbox();
  118.                     Mails.searchBySubject(subject);
  119.  
  120.                     Mails.assertMails(subject);
Advertisement
Add Comment
Please, Sign In to add comment