julia_v_iluhina

Untitled

Sep 28th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.60 KB | None | 0 0
  1. public class LazyCollectionFiltered extends AbstractLazyCollection {
  2. /*
  3.     http://pastebin.com/B06RqHXk
  4.     строки 3-20
  5. */
  6. *************************************
  7. /*
  8.     так расскажи мне в слеке)
  9.     а почему я не советовала использовать condition.toString() - ты мне расскажи)
  10.  
  11.     см прошлое ревью)
  12. */
  13. **********************************
  14.   throw new TimeoutException("\nfailed while waiting " + timeOutInMilliseconds + " seconds" +
  15. /*
  16.     после значения timeOutInMilliseconds пишем - " seconds"
  17.     поправь
  18. */
  19.  
  20. ********************************
  21.  
  22. public interface Condition<T> {
  23.     T apply(LazyEntity<T> entity);
  24.  
  25.     boolean check(T wrappedEntity);
  26. }
  27.  
  28. /*
  29.     делаем красиво)
  30.  
  31.     сейчас в этом интерфейсе - объявлены методы
  32.         служащие как для принятия решения - прошли-не прошли
  33.         так и для получения результата ожидания
  34.  
  35.     нарушаем Single Responsibility Principle )
  36.  
  37.     реализуй интерфейс Matcher <T> с объявленным методом boolean check(T wrappedEntity);
  38.  
  39.     а в Condition <T> - останется apply
  40.     Condition <T> - отнаследуй от Matcher <T>
  41. */
  42. **********************************************
  43. /*
  44.     в интерфейсе LazyElement
  45.     объяви методы
  46.     public boolean is(Condition<WebElement> condition)
  47.     public boolean has(Condition<WebElement> condition)
  48.  
  49.     и реализуй их в AbstractLazyElement
  50.     это методы-синонимы
  51.  
  52.     этот метод ничего не ждет
  53.     а лишь проверяет - выполняется ли в данный момент дла элемента - переданный кондишен
  54. */
  55. ******************************************
  56. /*
  57.     ты писала - тесты работают не стабильно
  58.  
  59.     я гоняла на твоем проекте тудуэмвиси тесты
  60.     норм все
  61.     не падало)
  62.  
  63.     покажи или опиши проблемы - в чем проявляется не стабильность
  64.     может - просто таймаута не хватило?    
  65. */
  66.  
  67. /*
  68.     в fetchWrappedEntity()
  69.     для классов
  70.             LazyCollectionFoundByConditionElement
  71.             и
  72.             LazyCollectionFiltered
  73.  
  74.     если таки оставить вариант обхода
  75.             for (LazyElement element : parentCollection)
  76.     в принципе - можно применить метод is
  77.     получится еще чуть более аккуратный код
  78.  
  79.     или - все же прислушайся к совету из прошлого ревью
  80.     строки 234-248
  81.         конечно - многословнее получится немного
  82.         но - выигрыш будет на количестве действий
  83.  
  84.  
  85.     пока не настаиваю
  86.     но разумнее прислушаться к моему совету)
  87.     важно  - чтобы fetchWrappedEntity() максивально шустро работали
  88.     оптимизировать скорость - уже на следующем шаге придется)
  89.  
  90.     ну и отладочные сообщения поубирай - с помощью которых разбирались в прошлый раз с проблемой
  91. */
  92. **************************************************
  93. /*
  94.     еще немного challenge )
  95.  
  96.     в интерфейсе LazyElement
  97.         объяви методы
  98.     LazyCollection findAll(By innerLocator);
  99.     LazyCollection findAll(String innerCssSelector);
  100.  
  101.     и реализуй их в AbstractLazyElement
  102.  
  103.     этот метод позволит у элемента  - по селектору или локатору - получить коллекцию внутренних элементов
  104.  
  105.     отладиться можно - используя
  106.     LazyCollection tasks = $("#todo-list").findAll("li");
  107.     или
  108.     LazyCollectionLazyCollection emails = $("[role='main']").findAll(".zA");
  109.  
  110.     Иногда такой метод findAll будет очень полезным
  111.  
  112.     принципы - те же
  113.     как ты до этого реализовывала методы get, find, filter ...
  114.  
  115.     так сказать - для закрепления результатов)
  116. */
Advertisement
Add Comment
Please, Sign In to add comment