julia_v_iluhina

Untitled

Nov 14th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.27 KB | None | 0 0
  1. https://google.github.io/styleguide/javaguide.html#s5.2.1-package-names
  2. /*
  3.     учитывай конценшенсы для имен пекеджей
  4.  
  5.     когда ты меняешь лишь регистр буквы в названии -
  6.     с точки зрения репозитория ничего не поменялось  (case insensitive)
  7.     вот полезные линки про эту проблему
  8.     https://www.patrick-wied.at/blog/rename-files-and-folders-with-git
  9.     http://stackoverflow.com/questions/8481488/is-git-not-case-sensitive
  10.     http://stackoverflow.com/questions/17683458/how-do-i-commit-case-sensitive-only-filename-changes-in-git
  11.     http://stackoverflow.com/questions/8904327/case-sensitivity-in-git
  12.     http://stackoverflow.com/questions/3011625/git-mv-and-only-change-case-of-directory
  13.  
  14.  
  15.     если это сложно, то можно поступить так
  16.  
  17.       если надо поменять лишь регистр буквы в названии (pageObject -> pageobject)
  18.       и отразить эти изменения в репозитории
  19.  
  20.       1)добавляем к названию еще какую-нибудь букву/цифру (pageObject -> pageObject1)
  21.       2)обновляем репозиторий
  22.       3)корректируем название на нужный нам вариант (pageObject1 -> pageobject)
  23.       4)обновляем репозиторий
  24.  
  25.       таким образом - изменения в регистре букв будут корректно отражены в репозитории
  26.       т к каждый раз названия менялись не только за счет регистра букв
  27.  
  28. */
  29. *************************
  30. public static Condition<List<WebElement>> minimumSizeOf(int size){
  31. /*
  32.     Of - лишний)
  33.     в прошлый раз было про это
  34. */
  35. ********************************
  36.    public static Condition<WebElement> visible(){
  37.         return new Visible();
  38.    }
  39. /*
  40.     по идее - можно было еще короче)
  41. */
  42.  
  43. public static Condition<WebElement> visible = new Visible();
  44.  
  45. /*
  46.     т е - реализовывать не метод, а статическую переменную
  47.     вроде бы - лаконичнее, что хорошо
  48.  
  49.     но - не так уж и хорошо)
  50.  
  51.     Тут есть такая тонкость)
  52.  
  53.     мы создали статические переменные = объект-кондишен
  54.  
  55.     и используем их в проекте, который поддерживает параллелизацию
  56.  
  57.     если мы в параллельных тестах будем использовать ОДИН объект-кондишен ОДНОВРЕМЕННО
  58.     могут возникать странные ошибки
  59.  
  60.     чтобы избежать этого
  61.     вместо переменных стоит использовать методы
  62.     тогда для каждого вызова кондишена мы будем использовать свой объект
  63.     и таких проблем не будет
  64.  
  65.     наш текущий вариант с методом - грамотнее)
  66. */
  67. **************************************
  68. public class Visible extends ElementCondition {
  69.  
  70.     private Boolean actualElement;
  71.  
  72.     @Override
  73.     public WebElement check(WebElement element) {
  74.         actualElement = element.isDisplayed();
  75. /*
  76.     Сама реализация - ок
  77.     а вот имя actualElement - странное
  78.  
  79.     actualState, isDisplayed - было бы уместнее
  80.  
  81.     вариант с actualState - хорош тем, что тоже можно будет реализовать кондишены
  82.     present(), enabled(), visible() - используя одного общего предка
  83.  
  84.     вариант с  isDisplayed - хорош понятностью)
  85.  
  86.     с реализацией кондишенов и применением наследования - все ок теперь
  87. */
  88. *****************************************
  89. public class WaitFor {
  90. ...
  91.     public <V> V until(Condition<V> condition, long timeout){
  92. /*
  93.     тут тоже все ок теперь
  94.  
  95.     переиспользуй этот метод в новом
  96.     public <V> V until(Condition<V>... conditions)
  97.  
  98.     в котором  - применяй Configuration.timeoout
  99.     и просто в цикле - вызывай until для каждого переданного кондишена по очереди
  100.     в итоге - мы или выйдем ко исключению
  101.     или вернем результат последнего выполненного until
  102.  
  103.     цель - получить инструмент для последовательной проверки нескольких кондишенов
  104. */
  105. *******************************
  106. http://joxi.ru/KAg8voQsgoX1qr
  107. /*
  108.     думаю, стоит переместить эти 2 класса в пекедж conditions
  109.     глубже  по структуре  - не нужно это прятать
  110.     а вот на уровень  conditions - было бы ок
  111. */
  112. ------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment