Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <dependency>
- <groupId>com.codeborne</groupId>
- <artifactId>selenide</artifactId>
- <version>3.9.3</version>
- </dependency>
- /*
- см описание 4. и 4.2.1 версий - уже будет ок с ними работать
- и со старым фф
- http://selenide.org/2017/01/26/selenide-4.2.1/
- тут еще не све материалы есть
- но вдруг не в теме - поможет разобраться
- https://docs.google.com/document/d/1fodHkTunrtit-EiMBrb91Mc6rbnQ5LwtBL9rISQveKA/edit?usp=sharing
- */
- *****************************************
- @Test
- public void cancelEditTaskAtActive(){
- //given
- given.givenAtAll(new Task(ACTIVE, "t6"));
- tasks.filterActive();
- /*
- переход на нужный фильтр - это все еще предварительные действия
- пусть даже и так же реализованные, как и tasks.filterActive();
- (хотя и тут есть варианты, но пока это можно отложить)
- сравни свой вариант с вот такими
- given.activeTasks("t6");
- given.atActive();
- или
- given.tasks(new Task(ACTIVE, "t6"));
- given.atActive();
- или
- given.tasks(new Task(ACTIVE, "t6")).atActive();
- или вот с таким
- given.tasksAtActive(new Task(ACTIVE, "t6"))
- приведенные варианты - все хороши в принципе)
- определяйся - какой тебе ближе
- кстати, нет смысла в разных тест-методах оперировать тасками с разными текстами
- мы же каждый раз с чистоголиста начинаем
- не забывай про оформление кода
- после предварительных действий - отступи строку
- посмотри на код и на комментарии - нужны ли теперь они
- */
- ********************
- public static class Task
- public enum TaskType
- /*
- реализация класса и enum-а = ок
- */
- ****************************
- @Step
- public static void givenAtAll(Task... taskTexts){
- ...
- for (Task taskText : taskTexts){
- ....
- }
- /*
- посмотри на имя параметра taskTexts и имя переменной taskText
- вопрос - имена верно отражают свойства сущностей?
- про
- String commandToRun = Joiner.on(",").join(jsContent);
- и
- '[" + commandToRun + "]'
- можно еще красивее)
- посмотри в сторону Arrays.toString(...)
- */
- *******************************
- /*
- примерно с 121-й строки ревью - http://pastebin.com/dq9x5MJt
- перечитывай
- тут я предложила тебе и другие варианты)
- можно и так - как описала выше
- что нам нужно в предварительных действиях задавать
- несколько тасок в таком-то статусе
- несколько тасок (каждая в своем статусе)
- ни одной таски
- на таком-то фильтре
- и это желательно делать понятным способом
- чтоб код писать было легко
- и читать было легко
- и чтоб возможнсстей ошибиться было поменьше
- также - дореализовывае полное покрытие
- без этого - будет мало примеров
- чтоб понять - какие тестовые ситуации нам нужно реализовать в помощью
- гивен-методов
- */
- ***************************
- TodoMVCTest extends OpenPageAndClearDataBeforeEachTest
- /*
- мы наследуем тест-класс от OpenPageAndClearDataBeforeEachTest
- перед запуском теста - открываем наше приложение
- после - чистим локалсторидж
- гивены можно вызывать и для варианта, когда надо задать пустой список тасок
- значит - можно вызывать в каждом тест-методе гивен-метод
- и убрать очистку локал сториджа после теста - вот уже облегчили код
- дальше - раз все тесты происхолят после открытия одного и того же урла
- можно вначале гивен-метода проверить
- если сейчас урл не такой, то открыть нужный урл
- этот кусочек кода можно оформить в виде метода,
- который будет вызываться вначле гивен-метода
- такого плана методы = если сейчас не так, то сделать так
- часто называют, начиная со слова ensure = обеспечить
- вот и не нужен нам код - по открытию урла в бифор-методе
- сразу вопрос - какой предок нужен тест-классу)
- вот тебе и еще одна оптимизация)
- кода меньше
- сущностей меньше
- действий лишних меньше
- */
Advertisement
Add Comment
Please, Sign In to add comment