julia_v_iluhina

Untitled

Sep 25th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.55 KB | None | 0 0
  1. public class ToDoMvcTest {
  2.  
  3.     @Test
  4.     public void taskWorkFlow() {
  5.  
  6.         open("https://todomvc4tasj.herokuapp.com/");
  7.  
  8.         add("a");
  9.         editTaskCancel("a", "a edited");
  10.         /*
  11.             прошлый вариант имени - cancelEdit
  12.             был значительно лучше
  13.             что делаем = отменяем + что отменяем
  14.             про Task - не уточняем, как и в именах других методов-действий -
  15.             ведь в этом приложении мы работаем только с тасками
  16.  
  17.             см https://docs.google.com/document/d/13dNyFGbI7mV22UUhH8E0LJ7SzabAmX7Bw7VCHScYfiU/edit#bookmark=id.2pvr3ijzfuho
  18.  
  19.         */
  20.         assertTasksAre("a");
  21.  
  22.         toggleAll();
  23.         assertItemsLeft(0);
  24.         /*
  25.             assertItemsLeft(0); - недостаточная проверка
  26.             нужно еще проверить - что список тасок содержит таску a
  27.         */
  28.  
  29.         filterActive();
  30.         assertVisibleTasksEmpty();
  31.  
  32.         add("b");
  33.         editTaskSubmit("b", "b edited");
  34.         /*
  35.             это как раз - просто edit
  36.             посмотрела на реализацию
  37.         */
  38.  
  39.         toggle("b edited");
  40.         assertVisibleTasksEmpty();
  41.  
  42.         filtercompleted();
  43.         /*
  44.             не забывай про CamelCase
  45.             правильно - filterCompleted
  46.  
  47.             https://google.github.io/styleguide/javaguide.html#s5.3-camel-case
  48.         */
  49.         assertTasksAre("a", "b edited");
  50.         /*
  51.             спорный вопрос - какой метод тут лучше использовать
  52.             assertTasksAre или assertVisibleTasksAre
  53.            
  54.             представь - прошло время - ты чуть подзабыл свой код
  55.             или кто-то другой
  56.             решил доработать этот сценарий
  57.             и к этому моменту - у нас те же видимые таски, но есть еще и не видимая
  58.            
  59.             смею тебя уверить - какое-то время человек будет тупить
  60.             почему на проверке assertTasksAre тест падает
  61.            
  62.             чтоб такого не происходило - лучше на фильтрах active & completed
  63.             делать проверки отфильтрованного списка тасок - всегда
  64.            
  65.             это как раз к недостаткам варианта - когда у тебя 4 проверки
  66.             да, точно максимально
  67.             но теперь - надо думать - когда какую проверку вызвать
  68.             и думать - не только про сейчас
  69.             но и про то, как это будет сопровождаться
  70.            
  71.             рекомендую на фильтрах active & completed
  72.             делать проверки отфильтрованного списка тасок - всегда
  73.             это будет более KISS
  74.            
  75.             настаивать не буду - это в общем-то зона субъективных решений
  76.             понимать это - надо в любом случае)
  77.         */
  78.  
  79. /*
  80.     к сценарию вопросов нету
  81.    
  82.     есть парочка  - к проверкам
  83.     парочка - к неймингу
  84.     это поправь
  85. */
  86. ***************************
  87.     private void clearcompleted() {
  88. /*
  89.     CamelCase
  90.     правильно - clearCompleted
  91. */
  92. ****************************************************
  93.     private SelenideElement editTaskStart(String oldText, String newText) {
  94.     private void editTaskSubmit(String oldText, String newText) {
  95.     private void editTaskCancel(String oldText, String newText) {
  96. /*
  97.     реализация методов - ок
  98.    
  99.     а с неймингом - надо еще доработать
  100.    
  101.     когда называем метод - начинаем с главного = что делаем
  102.     editTaskStart
  103.         что делаем = стартуем редактирование = startEdit
  104.         про Task - не уточняемся, также, как и для других методов-действий
  105.         ведь мы действия выполняем в этом приложении только над тасками
  106.    
  107.     editTaskSubmit
  108.     что делаем = подтверждаем редактирование через нажатие на энтер
  109.     в принципе - это и есть редактирование
  110.     edit - достаточно точно
  111.    
  112.     editTaskCancel
  113.     что делаем = отменяем редактирование = cancelEdit
  114.    
  115.     oldText & newText
  116.     Мы для текстов тасок - уже применяем термин taskText
  117.     и тут не будем для того же понятия добавлять новых терминов
  118.     oldTaskText & newTaskText - будет точнее
  119. */
  120. **************************
  121.     private void assertItemsLeft(int tasksCount) {
  122. /*
  123.     реализация - ок
  124.    
  125.     имя параметра
  126.     если кратко - то count достаточно
  127.    
  128.     а если хочется пояснить - то правильнее activeTasksCount
  129.    
  130.     tasksCount - не совсем это так - закомпличеные таски в это количество не засчитываются
  131.     только активные
  132. */
  133. ****************************************
  134.     private void assertTasksAre(String... taskTexts) {
  135.         tasks.shouldHave(exactTexts(taskTexts)).findBy(visible);
  136.     }
  137. /*
  138.     читаем код
  139.     tasks.shouldHave(exactTexts(taskTexts)) - проверили тексты в коллекции tasks
  140.    
  141.     tasks.shouldHave(exactTexts(taskTexts)).findBy(visible) - получили первую видимую таску в коллекции tasks
  142.    
  143.     вопрос - зачем нам эта первая видимая таска?
  144. */
  145. *************************************
  146.     private void filtercompleted() {
  147.  /*
  148.     CamelCase
  149.     правильнее - filterCompleted
  150.  */
Advertisement
Add Comment
Please, Sign In to add comment