julia_v_iluhina

Untitled

Sep 30th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.75 KB | None | 0 0
  1. [role='main'] tr[id]
  2.  
  3. /*
  4.     можно чуть лаконичнее локатор написать
  5.  
  6.     [role='main'] .za
  7.  
  8. */
  9. ***********************
  10. public static void assertMail(String text)
  11. /*
  12.     метод будет универсальнее если будет 2 параметра
  13.     assertMail(int index, String text)
  14.  
  15.     для бОльшего количества вариантов подойдет
  16. */
  17. *********************************
  18. public static void assertMails(int number, String text){
  19. /*
  20.     как думаешь - а можно проверить таким методом - что мейлов  = 5 штук и вот с такими
  21.     5-ю текстами  - "1", "2", "3", "4", "5"
  22.     ?
  23.  
  24.     чтобы мочь передать не строку, а производльное кодичество строк - вспомни -
  25.     как мы параметры методам объявляли
  26.  
  27.     кстати - кондишен texts - тоже может принять в качестве параметров произвольное количество строк
  28.  
  29.     exactTexts & texts - работают очень похоже
  30.     внутри такого кондишена сначала сверяется количество элементов коллекции и переданных текстов
  31.     если количества не совпадают - проверка не прошла
  32.     далее попарно сверяются тексты элементов с переданными текстами - нулевой с нулевым, первый с первым и т д
  33.     в exactTexts - тексты сверяются на равенство
  34.     в texts - на вхождение (в текст элемента входит соответствующий переданный текст)
  35.     таким образом - проверка кондишена texts - позволит проверить количество, порядок и сами тексты
  36.  
  37.     вспомни - как был организован метод assertTasks для тестирования todoNMVC
  38.     и примени тут эти приемы)
  39. */
  40. ******************************************
  41.     public static void goToSent(){
  42.         $("[role='navigation']").find(withText("Sent")).click();
  43.     }
  44.  
  45.     public static void goToInbox(){
  46.         $("[role='navigation']").find(withText("Inbox")).click();
  47.     }
  48. /*
  49.     можно и так)
  50.  
  51.     https://docs.google.com/document/d/13dNyFGbI7mV22UUhH8E0LJ7SzabAmX7Bw7VCHScYfiU/edit#bookmark=id.4i6i27d7lwn4
  52.  
  53.     в общем-то в рамках этого пейджа разумно вынести в переменную такой элемент $("[role='navigation']")
  54.  
  55.     withText - не скрывай - что это метод класса By
  56.     лучше - By.withText
  57.     строки 79-88 прошлого ревью
  58. */
  59. ************************************
  60. public class GmailTest {
  61.  
  62.     Gmail gmail = new Gmail();
  63.     Mail mails = new Mail();
  64.     Menu menu = new Menu();
  65.     /*
  66.         посмотри на классы пейджей
  67.         все методы и переменнай объявлены статическими, имена классов - как для пейджей-модулей
  68.         а тут - ты решила что делаем таки пейджи-объекты
  69.  
  70.         если нравится идей с пейджами-модулями - так используй пейджи именно как пейджи-модули
  71.         поскольку пейджей несколько - вызываем методы Имя класса пейджа-модуля . Имя метода
  72.        
  73.         если хочешь вариант с пейджами-объектами
  74.         так не надо объявлять методы пейджей статическими и
  75.         название классов пейджей надо подправить (должно заканчиваться на Page)
  76.     */
  77.     private String topic;
  78.     /*
  79.         логично думать - что пейджи пригодятся для всех тест-методов класса
  80.         потому их и объявляют как поля класса
  81.        
  82.         а вот эта переменная - она нужна только в конкретном тест-методе
  83.         логично ее там же объявить и инициализировать
  84.     */
  85.  
  86.     @Before
  87.     public void setup(){
  88.         Configuration.timeout = 15000;
  89.         /*
  90.             я бы таймаут объявляла в BeforeClass методе)
  91.            
  92.             тоже - наверняка это касается всех методов этого класса, сколько бы их ни было
  93.             так почему не сделать это единожды?
  94.         */
  95.         topic = createTopic();
  96.         /*
  97.             вот этому - место в тест-методе, где нужен уникальный топик
  98.            
  99.             далеко не факт - что в каждом из тест-методов класса нам такое понадобится
  100.            
  101.             что вынесла в метод возню с уникальным топиком - это разумно)
  102.            
  103.             только лучше универсальнее реализовать
  104.             прокомменчу возле метода createTopic()
  105.         */
  106.     }
  107.  
  108. ********************************************
  109.  
  110.  
  111.     public String createTopic(){
  112.         DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  113.         Date date = new Date();
  114.         return dateFormat.format(date);
  115.     }
  116.     /*
  117.         на самом деле, метод, генерирующий уникальную строку - полезный метод)
  118.         и не обязательно только в контекст генерации уникального топика
  119.          
  120.         разумнее реализовать универсальный метод generateUniqueText(String prefix)
  121.         который будет возвращать строку prefix+уникальная часть
  122.          
  123.         а раз этот метод универсальный
  124.         то расположи его как статический в классе-контейнере универсальных методов Helpers
  125.         (создай такой и подумай - где в структуре проекта его лучше расположить)
  126.     */
Advertisement
Add Comment
Please, Sign In to add comment