julia_v_iluhina

Untitled

Sep 18th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.40 KB | None | 0 0
  1. http://joxi.ru/gmvqJvkHxXZ4Or
  2.  
  3. /*
  4.     Перенеси интерфейс Condition в пекедж conditions
  5. */
  6. ***************************
  7. http://joxi.ru/DmBNWL6FNb87Xm
  8.  
  9. /*
  10.  
  11.     1 и 2
  12.     таки наверное ты столкнулась с эффектом - когда что-то переименовываешь - меняя лишь регистр буквы
  13.     надо решить этот вопрос
  14.     ниже - напишу подробнее про это
  15.  
  16.     3-7 - чтоб не загромождало - хоть бы в отдельный пекедж old перенеси
  17.     потом убьешь
  18. */
  19. /*
  20.     когда ты меняешь лишь регистр буквы в названии -
  21.     с точки зрения репозитория ничего не поменялось  (case insensitive)
  22.     вот полезные линки про эту проблему
  23.     https://www.patrick-wied.at/blog/rename-files-and-folders-with-git
  24.     http://stackoverflow.com/questions/8481488/is-git-not-case-sensitive
  25.     http://stackoverflow.com/questions/17683458/how-do-i-commit-case-sensitive-only-filename-changes-in-git
  26.     http://stackoverflow.com/questions/8904327/case-sensitivity-in-git
  27.     http://stackoverflow.com/questions/3011625/git-mv-and-only-change-case-of-directory
  28.  
  29.  
  30.     если это сложно, то можно поступить так
  31.  
  32.       если надо поменять лишь регистр буквы в названии (pageObject -> pageobject)
  33.       и отразить эти изменения в репозитории
  34.  
  35.       1)добавляем к названию еще какую-нибудь букву/цифру (pageObject -> pageObject1)
  36.       2)обновляем репозиторий
  37.       3)корректируем название на нужный нам вариант (pageObject1 -> pageobject)
  38.       4)обновляем репозиторий
  39.  
  40.       таким образом - изменения в регистре букв будут корректно отражены в репозитории
  41.       т к каждый раз названия менялись не только за счет регистра букв
  42.  
  43. */
  44. **********************************
  45. public abstract class AbstractCondition<V> implements Condition<V> {
  46.  
  47. /*
  48.     В интерфейсе Condition - дженерик-тип ты обозначала как T
  49.     что корректнее с точки зрения конвеншенсов
  50.  
  51.     тут - оно тоже уместнее было бы
  52. */
  53. ****************************************
  54. public class CollectionConditions {
  55. ...
  56.     public static Texts texts(final String... expectedTexts) {
  57.         return new Texts(expectedTexts);
  58.     }
  59.     /*
  60.         тут сделай аналогично, как сделала
  61.         для других методов этого класса
  62.  
  63.         тип возвращаемого значения - не уточняй до конкретного кондишена
  64.         хорошо и правильно - свести к типу интервейча, уточненного до типа в <>
  65.         Condition<List<WebElement>> - будет и точно, и правильно
  66.     */
  67. *********************************
  68.     public class ExactText extends ElementCondition {
  69.  
  70.      ...
  71.             if (elementText.equals(expectedText)) {
  72.                 return true;
  73.             }
  74.             return false;
  75. /*
  76.     такого плана код можно в одну строку переписать
  77.     return (elementText.equals(expectedText));
  78.  
  79.     другие кондишены тоже просмотри
  80. */
  81. *****************************
  82. public class ContainText extends ExactText {
  83. /*
  84.     просто Text - ок название для кондишена
  85.     будет Text и ExactText - текст и точный текст
  86.  
  87. */
  88. ************************************
  89. public class ElementConditions {
  90. ...
  91.     public static Condition<WebElement> visibilityOfElement() {
  92.         return new VisibilityOfElement();
  93.     }
  94. /*
  95.     имя кондишену - можно попроще
  96.     не visibilityOfElement, а visible
  97.  
  98.     и имени класса, и имени метода касается
  99.  
  100.     и еще метод для present создай
  101. */
  102. *********************************
  103. http://joxi.ru/a2X3dZMsybV8Om
  104.  
  105. /*
  106.     класс WaitFor перенеси в пекедж core
  107. */
  108. *****************************
  109. public <V> V until(Condition<V> condition, long timeOutInSeconds)
  110. /*
  111.     тут тоже корректнее типом T оперировать
  112.  
  113.     конвеншенcы
  114.     http://stackoverflow.com/questions/2900881/generic-type-parameter-naming-convention-for-java-with-multiple-chars
  115.     https://docs.oracle.com/javase/tutorial/java/generics/types.html
  116.  
  117. */
  118. ********************************
  119.  
  120. /*
  121.     Можно убрать (или закомментить)
  122.     в pom - кусок про параллелизацию
  123.  
  124.     а в BaseTest - вернуться к использованию BeforeClass & AfterClass
  125.  
  126.     все что нужно для параллелизации - в conciseAPI у нас есть
  127.     при необходимости - все подключишь
  128.  
  129.     сейчас будет быстрее отлаживаться  - когда браузер открывается, все тесты отрабатывают и потом он закрывается
  130. */
  131. **********************************
  132.  дореализуй еще варианты метода until
  133.  
  134.     public <V> V until(Condition<V>... conditions)
  135.     /*
  136.         суть - по очереди для каждого из кондишенов вызываем наш until(Condition<V> condition)
  137.         до тех пор, пока проверки проходят - двигаемся по набору переданных кондишенов
  138.         как только ждущая проверка для кондишена не прошла - дальше не проверяем
  139.     */
  140. ***********************
  141.  
  142. /*
  143.     можно еще чуть оптимизировать код в некоторых кондишенах
  144.     мы это позже сделаем - когда удалим за ненадобностью лишние
  145.    
  146.     пока отложим
  147. */
Advertisement
Add Comment
Please, Sign In to add comment