julia_v_iluhina

Untitled

Nov 4th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.71 KB | None | 0 0
  1. public static ExpectedCondition<List<WebElement>> texts(final By locator, final String... expectedTexts) {
  2. ...
  3.                 if (actualTexts.size() != expectedTexts.length) {
  4.                     return null;
  5.                 }
  6.                 for (int i = 0; i < actualTexts.size(); i++) {
  7.                     if (!actualTexts.get(i).contains(expectedTexts[i])) {
  8.                         return null;
  9. /*
  10.     тут - сверяем количество, порядок и тексты = на вхождение
  11. */
  12. public static ExpectedCondition<List<WebElement>> visibleTextsOf(final By locator, final String... expectedTexts) {
  13. ...
  14.                 if (!actualTexts.equals(Arrays.asList(expectedTexts))) {
  15. /*
  16.     а тут - проверям количество, порядок и тексты = на равенство
  17.  
  18.     красивая реализация)
  19.  
  20.     только вот имена кондишенов - будут путать)
  21.  
  22.     было бы ок
  23.     тексты проверяем на вхождение
  24.         textsOf
  25.         textsOfVisible
  26.     тексты проверяем на равенство
  27.         exactTextsOf
  28.         exactTextsOfVisible (ты как раз такой вариант и реализовал)
  29.     предлагаю textsOf - так и оставить (textsOf - Of для единообразия добавь)
  30.     и реализовать пару для exactTextsOf и exactTextsOfVisible
  31.     ведь именно они нужны для todoMVC
  32.  
  33.     textsOf - оставь
  34.     далее пригодится
  35.     а вот textsOfVisible - уже и не реализовывай
  36.     раз пока потребности нету
  37.  
  38.     можно даже было бы ограничиться  вариантом - реализовать только exactTextsOfVisible
  39.     (это к вопросу - сколько вариантов ассертов нам нужно для этого приложения)
  40.  
  41. */
  42. public static void assertTasksAre(String... tasksTexts) {
  43. public static void assertVisibleTasks(String... taskTexts) {
  44. public static void assertNoTasks() {
  45. public static void assertNoVisibleTasks() {
  46. /*
  47.     это про то, как смочь ограничиться
  48.     мы это уже рассматривали
  49.     на всякий случай повторю
  50.  
  51.     https://drive.google.com/file/d/0B8hgIBw8-V-AdGxxU1R3enl1RzQ/view?ts=567ab8d7
  52.  
  53.     мы можем быть максимально точными и держать 4 проверки
  54.         2 -
  55.             в списке = такси с такими-то текстами
  56.             в списке = пусто
  57.         и еще 2 -
  58.             в отфильтрованном по visible списке = таски с такими-то текстами
  59.             в отфильтрованном по visible списке = пусто
  60.         И за точность будем платить  тем - что надо думать - когда какую проверку вызвать правильнее
  61.         и если это делать бездумно - то при небольших изменениях сценариев - могут тесты падать на проверках,
  62.         или второй вариант - не будем нормально пользоваться полученной точностью...
  63.  
  64.         мы можем исходить из того, что ошибку, когда невидимые таски копятся в списке - мы тестим на более низком уровне,
  65.         и на UI уровне - нам не нужно до этого уточняться. Поэтому - мы будем держать всего 2 проверки
  66.               в отфильтрованном по visible списке = таски с такими-то текстами
  67.               в отфильтрованном по visible списке = пусто
  68.         В таком случае - каждый раз понятно - какую проверку вызывать - получаем более KISS картину
  69.         правда, платим за это точностью) Но - возможно - если мы уже отдельно это в тестах покрыли -
  70.         что у нас не копятся невидимые таски - так мы и не платим ) И - тогда - все проще в написании тестов,
  71.         и в их сопровождении.
  72.         Тогда - поскольку обе проверки реализованы одинаково и других нету - можно из имен проверок скрыть этот нюанс
  73.         и назвать их assertTasks и assertNoTasks (хотя в них работаем с отфильтрованным по visible списком тасок)
  74.  
  75.  
  76.     если ограничиться двумя проверками
  77.     то тебе будет достаточно кондишенов exactTextsOfVisible и sizeOfVisible
  78.  
  79.     на самом деле - дореализовать и exactTextsOf - уже дело техники
  80.     все сложности - позади)
  81.     все разобрано уже
  82.  
  83.     так что - как считаешь нужным делай
  84.    
  85.     по сути - выбор такой
  86.         сэкономить на реализации разных кондишенов
  87.         и получить 2 метода для проверок
  88.        
  89.         дореализовать и exactTextsOf
  90.         и как и ранее - оперировать 4 проверками
  91. */
Advertisement
Add Comment
Please, Sign In to add comment