Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- http://joxi.ru/gmvqJvkHxXZ4Or
- /*
- Перенеси интерфейс Condition в пекедж conditions
- */
- ***************************
- http://joxi.ru/DmBNWL6FNb87Xm
- /*
- 1 и 2
- таки наверное ты столкнулась с эффектом - когда что-то переименовываешь - меняя лишь регистр буквы
- надо решить этот вопрос
- ниже - напишу подробнее про это
- 3-7 - чтоб не загромождало - хоть бы в отдельный пекедж old перенеси
- потом убьешь
- */
- /*
- когда ты меняешь лишь регистр буквы в названии -
- с точки зрения репозитория ничего не поменялось (case insensitive)
- вот полезные линки про эту проблему
- https://www.patrick-wied.at/blog/rename-files-and-folders-with-git
- http://stackoverflow.com/questions/8481488/is-git-not-case-sensitive
- http://stackoverflow.com/questions/17683458/how-do-i-commit-case-sensitive-only-filename-changes-in-git
- http://stackoverflow.com/questions/8904327/case-sensitivity-in-git
- http://stackoverflow.com/questions/3011625/git-mv-and-only-change-case-of-directory
- если это сложно, то можно поступить так
- если надо поменять лишь регистр буквы в названии (pageObject -> pageobject)
- и отразить эти изменения в репозитории
- 1)добавляем к названию еще какую-нибудь букву/цифру (pageObject -> pageObject1)
- 2)обновляем репозиторий
- 3)корректируем название на нужный нам вариант (pageObject1 -> pageobject)
- 4)обновляем репозиторий
- таким образом - изменения в регистре букв будут корректно отражены в репозитории
- т к каждый раз названия менялись не только за счет регистра букв
- */
- **********************************
- public abstract class AbstractCondition<V> implements Condition<V> {
- /*
- В интерфейсе Condition - дженерик-тип ты обозначала как T
- что корректнее с точки зрения конвеншенсов
- тут - оно тоже уместнее было бы
- */
- ****************************************
- public class CollectionConditions {
- ...
- public static Texts texts(final String... expectedTexts) {
- return new Texts(expectedTexts);
- }
- /*
- тут сделай аналогично, как сделала
- для других методов этого класса
- тип возвращаемого значения - не уточняй до конкретного кондишена
- хорошо и правильно - свести к типу интервейча, уточненного до типа в <>
- Condition<List<WebElement>> - будет и точно, и правильно
- */
- *********************************
- public class ExactText extends ElementCondition {
- ...
- if (elementText.equals(expectedText)) {
- return true;
- }
- return false;
- /*
- такого плана код можно в одну строку переписать
- return (elementText.equals(expectedText));
- другие кондишены тоже просмотри
- */
- *****************************
- public class ContainText extends ExactText {
- /*
- просто Text - ок название для кондишена
- будет Text и ExactText - текст и точный текст
- */
- ************************************
- public class ElementConditions {
- ...
- public static Condition<WebElement> visibilityOfElement() {
- return new VisibilityOfElement();
- }
- /*
- имя кондишену - можно попроще
- не visibilityOfElement, а visible
- и имени класса, и имени метода касается
- и еще метод для present создай
- */
- *********************************
- http://joxi.ru/a2X3dZMsybV8Om
- /*
- класс WaitFor перенеси в пекедж core
- */
- *****************************
- public <V> V until(Condition<V> condition, long timeOutInSeconds)
- /*
- тут тоже корректнее типом T оперировать
- конвеншенcы
- http://stackoverflow.com/questions/2900881/generic-type-parameter-naming-convention-for-java-with-multiple-chars
- https://docs.oracle.com/javase/tutorial/java/generics/types.html
- */
- ********************************
- /*
- Можно убрать (или закомментить)
- в pom - кусок про параллелизацию
- а в BaseTest - вернуться к использованию BeforeClass & AfterClass
- все что нужно для параллелизации - в conciseAPI у нас есть
- при необходимости - все подключишь
- сейчас будет быстрее отлаживаться - когда браузер открывается, все тесты отрабатывают и потом он закрывается
- */
- **********************************
- дореализуй еще варианты метода until
- public <V> V until(Condition<V>... conditions)
- /*
- суть - по очереди для каждого из кондишенов вызываем наш until(Condition<V> condition)
- до тех пор, пока проверки проходят - двигаемся по набору переданных кондишенов
- как только ждущая проверка для кондишена не прошла - дальше не проверяем
- */
- ***********************
- /*
- можно еще чуть оптимизировать код в некоторых кондишенах
- мы это позже сделаем - когда удалим за ненадобностью лишние
- пока отложим
- */
Advertisement
Add Comment
Please, Sign In to add comment