julia_v_iluhina

Untitled

Sep 22nd, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.61 KB | None | 0 0
  1. public class TodoMvcPage {
  2. /*
  3.     Пейдж-модули удобно называть без слова Page в конце
  4.     потому что если ты будешь использовать несколько пейдж-модулей в одном тесте
  5.  
  6.     то желательно обращаться к их методам через имя класса пейдж-модуля
  7.     чтобы видеть, где с каким пейджом идет работа
  8.  
  9.  
  10.     и когда ты будешь писать
  11.         TodoMVCPage.givenAtAll()
  12.     то это явно не так прикольно как
  13.         TodoMVC.givenAtAll()
  14.  
  15.     правда?
  16.  
  17.     (так обращаться - важно, когда есть несколько пейджей,
  18.     а если он один - то можно без ущерба для точности -
  19.     заимпортить статически все методы и при вызове - не указывать им класса пейдж-модуля)
  20.  
  21.  
  22.     вот это Page в конце - это дань общим conventions (или общепринятым предпочтениям)
  23.     при именовании классов в мире ООП
  24.  
  25.     ми же тут юзаем подход "Модульного Программирования", потому тут этого "лишнего слова"
  26.     не нужно
  27.  
  28.     А то, что это все же пейдж - скажет нам имя пекеджа - pages
  29. */
  30. /*
  31.     по поводу private - см ревью к прошлой работе
  32. */
  33. *******************************
  34. public class TaskOperationsAtActiveFilterTest extends BaseTest {
  35. /*
  36.     в имени тест-класса - написали - что операции с тасками тестим
  37.     т е - про таски - написали
  38. */
  39.     @Test
  40.     public void editTask() {
  41.     /*
  42.         и тут опять повторяемся про таску  - в имени метода
  43.     */
  44.         ...
  45.  
  46.         edit("v", "v edited");
  47.         ...
  48.     }
  49.  
  50. ...
  51.     @Test
  52.     public void confirmEditByPressTab(){
  53.     /*
  54.         а тут - уже по-другому )
  55.         про таску в имени не пишем
  56.  
  57.         понятно, почему - если вспомнить про имена методов пейджей
  58.         но - если не вспомнить и если не знать - то  ...
  59.         сложно будет понять)
  60.     */
  61.         ...
  62.  
  63.         editByPressTab("k", "k edited");
  64.  
  65.         ...
  66.     }
  67. /*
  68.     тут у нас возникла проблемка)
  69.     имена методов из пейдж-модуля и тест-методов - зачастую одинаковы)
  70.  
  71.     ты выкрутилась - в таких случаях добавила слово Task в имя метода
  72.     мне кажется этот вариант не очень хорошим
  73.  
  74.     тут у нас - из-за статического импорта -
  75.      в одной области видимости - и методы пейджа и методы тест-класса
  76.     и если они будут называться похоже - очень легко запутаться и вызвать не тот метод
  77.  
  78.     например - пришем тест-метод delete
  79.     и вместо вызова delete из пейджа - вызываем тот же тест-метод, что и пишем
  80.     понятно - что имена методов отличаются - но не настолько - чтоб это как-то сильно бросалось в глаза
  81.  
  82.     вижу пару решений
  83.         имена тест-методов - начинать с test
  84.             тогда будет гораздо заметнее и понятнее разница между методами пейджа и тест-методами
  85.  
  86.         не использовать import static
  87.             TodoMvc.delete(...) - так вызываем метод пейдж-модуля
  88.                 получаем разные области видимости имен
  89.                 и тоже уходим от проблемы
  90.  
  91.     твой вариант мне нравится меньше
  92.                 потому что можно не догадаться - где чей метод
  93.                 разница в написании - не говорит нам об этом
  94.  
  95.     поправь одним из описанных способов)
  96. */
Advertisement
Add Comment
Please, Sign In to add comment