Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- http://joxi.ru/eAO7pYkt4YgRRA
- /*
- перенеси пекедж helpers внутрь fullCoverageWithFT
- так будет удобнее - для проекта в котором - для каждой домашки - свой пекедж
- про то, что есть красиво и правильно для структуры проекта - еще поговорим
- пока делаем удобно)
- для нашей конкретной реальности - проекта с домашками
- */
- **********************************
- http://joxi.ru/DrlQ5oLh4P1q3m
- /*
- 1 - точка с запятой - лишняя
- 2 - пропуск одной строки - хорош для форматироания кода
- пропуск нескольких строк - уже лишнее
- https://google.github.io/styleguide/javaguide.html#s4.6.1-vertical-whitespace
- */
- *************************************
- if (!baseUrl.equals(url())) open(baseUrl);
- /*
- соблазнительно обойтись без фигурных скобок)
- а по конвеншенсам - они нужны)
- я так понимаю - во избежание такого развития событий
- надо позже что-то еще включить в if-блок
- и человек по-бытрому дописывает еще одну строку - не заботясь о фигурных скобках
- а потом - проблемки)
- в общем - сразу соломку стелем))
- в прошлом ревью давала линку на этот раздел конвеншенсов
- */
- *******************************
- public void editCompletedOnAll() {
- givenAtAll(aTask("a", COMPLETED));
- ...
- public void cancelEditOnActive() {
- givenAtActive(aTask("b", ACTIVE));
- ...
- public void editOnActive() {
- givenAtActive(aTask("v", ACTIVE));
- ...
- public void cancelEditOnAll(){
- givenAtAll(aTask("a", ACTIVE));
- ...
- /*
- применять разные буквы для текстов тасок - это уже как решишь
- но в принципе - не обязательно)
- важнее - создать разные тестовые ситуации
- во всех этих родственных случаях - работаем с единственной таской
- было бы лучше если бы
- работали со второй зи 2-ух тасок
- работали с певой из 2-ух тасок
- работали с единственной таской
- работали с единственной видимой таской (при существовании и невидимой)
- вот это - поправь)
- еще отслеживать такие моменты и покрытие - легче - если методы расположены в неком порядке
- например, идем построчно по тест-плану
- editCompletedOnAll()
- editOnActive()
- deleteOnAll()
- deleteOnActive()
- completeOnActive()
- ...
- ну или по колоночкам идти - тоже есть в этом смысл
- кстати, я бы не стала называть метод вот так - editCompletedOnAll()
- достаточно editOnAll()
- все нюансы тестовой ситуации все равно не отразишь (если будешь делать ситуации - как я выше писала)
- на уровне имен методов - я бы просто указывала - что проверили и на коком фильтре
- а если надо глубже - уже в отчете можно будет посмотреть
- */
- **********************
- public void deleteOnAll() {
- givenAtAll(aTasks(ACTIVE, "a", "c", "b"));
- ...
- public void deleteOnActive(){
- givenAtActive(aTasks(ACTIVE, "a", "b", "c"));
- ...
- public void deleteOnCompleted() {
- givenAtCompleted(aTask("a", ACTIVE), aTask("c", COMPLETED));
- /*
- тут - уже разнообразнее
- можно и так оставить )
- а можно на одном из фильтров - удалять единственную таску
- получится максимально разнообразно
- в обоих случаях - оперируем
- */
- ***********************
- public void clearCompletedOnAll(){
- givenAtAll(aTask("a", COMPLETED), aTask("b", ACTIVE), aTask("c", COMPLETED), aTask("d", ACTIVE));
- ...
- public void clearCompletedOnActive(){
- givenAtAll(aTask("a", COMPLETED), aTask("b", ACTIVE), aTask("c", COMPLETED), aTask("d", ACTIVE));
- /*
- почему в clearCompletedOnActive - делаем givenAtAll?
- даже если это поправить)
- соглашусь - что за счет разных фильтров - ситуация разная
- я бы ее сильнее разнообразила)
- в одном из случаев - удаляла единственную таску
- */
- *************************
- @Test
- public void completeAllOnAll() {
- givenAtAll(aTasks(ACTIVE, "a", "b"));
- toggleAll();
- assertTasksAre("a", "b");
- filterCompleted();
- assertVisibleTasksAre("a", "b");
- assertItemsLeft(0);
- }
- /*
- ага, таки ты от 3-ех гивен-методов избавилась)
- ну, в принципе, ок - вызов givenAtAll(aTasks(ACTIVE, "a", "b")); -
- достаточно лаконичный)
- ты в тест-плане - пометила - что assertItemsLeft(0); - покрыто после completeAll
- нет)
- это у тебя покрыто после filterCompleted(); )
- добавь assertItemsLeft(0); и в проверки после completeAll
- и в названии метода отрази - что покрыли не только completeAll
- но и switchToCompleted - что-то типа
- completeAllOnAllAndSwitchToCompleted()
- длинновато)
- но это скрывать не стоит)
- тоже - для меня повод подумать - стоит ли такой метод реализовывать
- тут, конечно, - решения идеального нет)
- есть плюсы и у такого варианта, как у тебя
- */
- *******************************************
- @Test
- public void switchFromActiveToAll(){
- givenAtActive(aTask("a", ACTIVE));
- filterAll();
- editByPressTab("a", "a edited");
- assertTasksAre("a edited");
- assertItemsLeft(1);
- }
- @Test
- public void switchFromCompletedToActive(){
- givenAtCompleted(aTask("a", ACTIVE), aTask("b", COMPLETED));
- filterActive();
- editByClickOutside("a", "a edited");
- assertVisibleTasksAre("a edited");
- assertItemsLeft(1);
- }
- /*
- ну, для уточнения теста complete all at All - согласна
- был смысл делать маленький е2е
- мы уточняли проверки
- и по пути - покрыли еще одно действие
- а тут - я не вижу причин делать е2е - объединяя переход на другой фильтри и разные виды редактирования
- мы мало что экономим и делаем тестирование этих фич - зависимым. А это не хорошо.
- тем более - что уже есть отдельные фиче-тесты - для
- editByPressTab и editByClickOutside
- мы и так уже молодцы - оптимизировати покрытие
- */
- ************************************
- private void editByClickOutside(String oldTaskText, String newTaskText) {
- setNewTaskText(oldTaskText, newTaskText);
- $("h1").click();
- }
- /*
- можно и так)
- а можно кликнуть на элементе
- селектор которого мы уже используем
- и по клику на котором ничего кроме смены фокуса - не происходит
- хороший кандидат $("#new-todo")
- не забудь про вот это
- https://docs.google.com/document/d/13dNyFGbI7mV22UUhH8E0LJ7SzabAmX7Bw7VCHScYfiU/edit#heading=h.pk1xvngaj4rk
- */
Advertisement
Add Comment
Please, Sign In to add comment