Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Step
- private void confirmEditByTab(String oldTaskText, String newTaskText) {
- startEdit(oldTaskText, newTaskText);
- $("#header>h1").pressTab();
- }
- /*
- startEdit(oldTaskText, newTaskText).pressTab(); - так разумнее делать
- именно так юзер и делает это действие
- нажимает Tab - сразу после ввода нового текста
- когда это поле ".edit" - еще в фокусе
- а не - переключается на элемент $("#header>h1") и там нажимает Tab
- */
- @Step
- private void confirmEdit(String oldTaskText, String newTaskText) {
- startEdit(oldTaskText, newTaskText);
- $("#header>h1").click();
- }
- /*
- я писала - что вместо $("#header>h1") разумнее использовать $("#new-todo")
- строки 105-118 прошлого ревью
- confirmEdit - уточни имя метода - confirmEditByClickOutside
- confirmEditByTab - да и тут стоит быть точнее - confirmEditByPressTab
- */
- *********************************
- @Test
- public void deleteByEmptyingTtextAtAll() {
- given(ACTIVE, "a");
- confirmEditByTab("a", "");
- assertNoTasks();
- }
- @Test
- public void deleteByEmptyingTtextAtActive() {
- givenAtActive(ACTIVE, "a");
- confirmEditByTab("a", "");
- assertNoTasks();
- }
- @Test
- public void deleteByEmptyingTtextAtCompleted() {
- givenAtCompleted(COMPLETED, "a");
- confirmEditByTab("a", "");
- assertNoTasks();
- }
- /*
- во всех 3-х тестах - используется одна и та же тестовая сиуация
- работаем с единственной таской в списке
- я писала - используй разные тестовые ситуации
- удали единственную таску
- удали вторую таску
- удали единственную видимую (при условии что есть еще и не видимая)
- это касается всех без исплючения фиче-тестов
- проверь - тестовые ситуации должны быть разнообразными
- это обеспечит лучшее покрытие при таком же количестве тестов
- больше нюансов учтешь
- смотри на название методов - есть ошибки в spelling
- и другие методы просмотри - такого плана ошибки еще есть
- ошибки в spelling IntelIJ Idea подчеркивает зеленой волнистой линией
- */
- *******************************
- public void switchFromAllToCompleted() {
- public void FromAllToActive() {
- public void FromActiveToAll() {
- public void FromActiveToCompleted() {
- public void FromCompletedToAll() {
- public void FromCompletedToActive() {
- /*
- строки 75-92 прошлого ревью - относится ко всем этим методам
- не забывай - в Java имена методов должны начинаться с маленькой буквы
- */
- ****************************
- @Test
- public void reopenAllAtCompleted() {
- givenAtCompleted(ACTIVE, "a", "b");
- toggleAll();
- assertTasks("a", "b");
- assertItemsLeft(0);
- }
- /*
- метод делает не то
- что заявляет
- */
- ********************************
- @Test
- public void clearCompletedAtAll() {
- given(COMPLETED, "a", "b");
- clearCompleted();
- assertNoTasks();
- }
- /*
- строки 56-59 прошлого ревью
- */
- ********************************
- @Test
- public void clearCompletedAtActive() {
- givenAtActive(ACTIVE, "a", "b");
- toggle("a");
- clearCompleted();
- assertTasks("b");
- assertItemsLeft(1);
- }
- /*
- complete - мы тут не тестируем
- сразу создай - в гивен-методе - закомпличеную таску
- */
- *******************************
- @Test
- public void deleteAtCompleted() {
- givenAtCompleted(ACTIVE, "a");
- toggleAll();
- delete("a");
- assertNoTasks();
- }
- /*
- то же самое
- complete all- мы тут не тестируем
- сразу создай - в гивен-методе - закомпличеную таску
- */
- *************************************
- @Test
- public void editAtCompleted() {
- given(COMPLETED, "a");
- toggleAll();
- edit("a", "aEdited");
- assertTasks("aEdited");
- assertItemsLeft(1);
- }
- /*
- метод делает не то что написано в его имени
- и действия лишние - правильно готовь тестовую ситуацию
- если тестируем редактирование
- то уже никаких toggleAll() в тесте быть не должно
- */
- **************************************
- @Test
- public void editAtAll() {
- given(ACTIVE, "a");
- given(COMPLETED, "b");
- edit("b", "bEdited");
- assertTasks("bEdited");
- assertItemsLeft(0);
- }
- /*
- зачем 2 вызова гивен-методов?
- */
- ************************************
- public void testDeleteTaskAtAllFilter() {
- public void testCancelEditTaskAtActiveFilter() {
- public void testReopenAllAtCompleted() {
- /*
- посмотри внимательно - разве это уже не покрыто новыми фиче-тестами?
- в рамках одного тест-класса - подходи к неймингу тест-методов с какими-то одними правилами
- начинаешь имя тест-метода с test - ок
- но только делай єто для всех тест-методов
- или не делай для всех
- то же касается уточнений - AtAllFilter или AtCompleted
- Filter - то пишем то нет
- одно правило в нейминге - сделает код однозначнее
- */
- ****************************
- public void testTasksLifeCycle() {
- add("a");
- /*
- и тут примени гивент-метод
- тут - мы должны задать = список тасок на начало теста пуст и стартуем с all фильтра
- такой гивен у тебя точно есть
- */
- *********************************
- AtTodoMVCPageWithClearedDataAfterEachTest
- /*
- еще наворот, уже последний
- мы наследуем тест-класс от AtTodoMVCPageWithClearedDataAfterEachTest
- перед запуском теста - открываем наше приложение
- после - чистим локалсторидж
- гивены можно вызывать и для варианта, когда надо задать пустой список тасок
- значит - можно вызывать в каждом тест-методе гивен-метод
- и убрать очистку локал сториджа после теста - вот уже облегчили код
- дальше - раз все тесты происхолят после открытия одного и того же урла
- можно вначале гивен-метода проверить
- если сейчас урл не такой, то открыть нужный урл
- этот кусочек кода можно оформить в виде метода,
- который будет вызываться вначле гивен-метода
- такого плана методы = если сейчас не так, то сделать так
- часто называют, начиная со слова ensure = обеспечить
- вот и не нужен нам код - по открытию урла в бифор-методе
- сразу вопрос - какой предок нужен тест-классу)
- вот тебе и еще одна оптимизация)
- кода меньше
- сущностей меньше
- действий лишних меньше
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement