julia_v_iluhina

Untitled

Oct 26th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.04 KB | None | 0 0
  1. src / test / java / com / selenide / mvc /
  2.  
  3. /*
  4.     предположим, что работаешь ты для организации  selenide.com )
  5.     но  - тестируешь ты приложение todomvc, а не  mvc
  6.     измени имя пекеджа)
  7. */
  8. *******************************
  9. http://joxi.ru/DmBNWL6FNVqgNm
  10. /*
  11.     Пропуск одной строки - хорошо форматирует код
  12.     а вот пропускать несколько строк к ряду - это уже лишнее
  13.     https://google.github.io/styleguide/javaguide.html#s4.6.1-vertical-whitespace
  14. */
  15. ******************************
  16.     String title = " \\\"title\\\":\\\"";
  17.     String endOfScript = "\\\"},";
  18.  
  19.     public String getStringForScript(TaskStatus taskStatus, String... taskTexts) {
  20.         String stringResult = "localStorage.setItem(['todos-troopjs'], \"[";
  21.         String condition = "{\\\"completed\\\":";
  22.         for (String text : taskTexts) {
  23.             stringResult += condition + taskStatus + "," + title + text + endOfScript;
  24.             /*
  25.                 переменные condition, title, endOfScript - используются только тут и единожды
  26.                 сравни
  27.                 stringResult += condition + taskStatus + "," + title + text + endOfScript;
  28.                 и
  29.                 stringResult += "{\\\"completed\\\":" + taskStatus + "," + " \\\"title\\\":\\\"" + text + "\\\"},";
  30.  
  31.                 разве стало намного длиннее
  32.                 или сложнее?
  33.                 наоборот - проще - т к не надо вспоминать - а что же в переменных хранится
  34.  
  35.                 избавляйся от ненужных переменных)
  36.             */
  37.         }
  38.         if (taskTexts.length > 0) {
  39.             stringResult = stringResult.substring(0, (stringResult.length() - 1));
  40.         }
  41.         stringResult += "]\");";
  42.         return stringResult;
  43.     }
  44. /*
  45.     с TaskStatus - навел порядок
  46.     это ок)
  47.  
  48.     вариант сборки команды для (TaskStatus taskStatus, String... taskTexts) - тоже ок
  49.     остались мелочи - лишнее поубирать
  50. */
  51. ********************
  52.     private void givenWithSmartCondition(TaskStatus taskStatus, String... taskTexts) {
  53.         System.out.println(getStringForScript(taskStatus, taskTexts));
  54.         System.out.println(getStringForScript(taskStatus, taskTexts));
  55.         /*
  56.             System.out.println - одного раза мало?
  57.             )
  58.             когда отладимся - убери это
  59.             пока пусть побудет
  60.         */
  61.         executeJavaScript(getStringForScript(taskStatus, taskTexts));
  62.         refresh();
  63.     }
  64. ************************
  65. /*
  66.     реализация givenWithSmartCondition(TaskStatus taskStatus, String... taskTexts)
  67.     уже ок
  68.     переименуй метод просто в given
  69.    
  70.     но - нам нужна более полная и универсальная функциональность
  71.     нам нужна возможность диктовать - в каком статусе должны быть таски - для каждой добавляемой таски
  72.     например, нам нужна закомпличеная таска a, и активная - b
  73.    
  74.     пока мы нашим гивен-методом можем добавить несколько тасок, но в одном статусе
  75.    
  76.     так мы получаем - что у таски есть 2 свойства - ее статус и ее текст
  77.     и нам при этом  - надо задать несколько тасок в качестве параметра метода
  78.     это можно реализовать так
  79.  
  80.      для таски с ее 2-мя свойствами - реализовать класс Task
  81.  
  82.      параметрами гивен-метода - будут как раз объекты этого нового типа
  83.      given(Task... tasks)
  84.      и вызов метода может быть таким
  85.      given(new Task(COMPLETED, "a"), new Task(ACTIVE, "b"))
  86.      чтобы получить вот такую картину
  87.      закомпличеная таска a, и активная - b
  88.      
  89.      да, в твоем случае - придется и реализовать getStringForScript
  90.      с набором параметров - (Task... tasks)
  91.  
  92.      полезные линки
  93.  
  94.          классы
  95.          http://www.tutorialspoint.com/java/java_object_classes.htm
  96.          http://www.helloworld.ru/texts/comp/lang/java/java/07.htm
  97.  
  98.          внутренние классы (нас интересуют member inner classes)
  99.          http://www.tutorialspoint.com/java/java_innerclasses.htm
  100.          http://www.quizful.net/post/inner-classes-java
  101.          http://www.javatpoint.com/java-inner-class
  102.  
  103. */
Advertisement
Add Comment
Please, Sign In to add comment