Советы по Cypress, часть 2: тестирование потоков email с Mailosaur |
03.02.2020 00:00 |
Автор: Филип Рик (Pilip Hric) "Чем больше тесты похожи на то, как реально используется ваше ПО, тем больше уверенности они вам дают". Кент С. Доддс. Во второй части советов про Cypress я хочу рассказать вам о том, как мы используем Cypress с инструментом Mailosaur. Создавая тесты, я хочу, чтобы они были максимально похожими на реальное пользовательское поведение – иными словами, я рассказываю историю целиком. Приведу пример. Допустим, вы забыли пароль к вашей учетной записи Slido. Вот что вы сделаете как пользователь:
При помощи Cypress можно легко выполнить первый шаг. Однако переход к третьему шагу требует открытия почты, а это не то, что можно легко сделать в тесте (а может, вы и не хотите это делать). В норме этот вопрос решается стейдж-окружением и созданием особых настроек, позволяющих добыть нужную информацию. Но это не то, что делает пользователь, это на него не похоже. Вы, конечно, убедитесь, что все части функциональности работают (и это хорошо), но если вы похожи на меня – вы будете чувствовать, что этого недостаточно. Приветствуем: Mailosaur Mailosaur – это сервис, создающий папку входящей почты. Выделяется он тем, что доступ к нему можно получить не только через интерфейс, но и через API. Все содержимое письма и его метаданных может быть получено как чистый текст, HTML, или JSON, и вы можете просмотреть все сссылки, вложения и изображения. Больше всего мне нравится возможность подождать прибытия определенного письма. Это означает, что вы можете получить доступ ко всей информации за несколько миллисекунд, а затем использовать ее в тесте. При помощи Mailosaur вы создаете емейл-сервер, куда приходят все письма с определенным именем пользователя. Получится что-то вроде этого: {{любой текст}} Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript Интеграция Mailosaur с Cypress Так ак вы можете получить нужную информацию путем простого HTTP-запроса, то это вы и сделаете – используя команду Cypress cy.request(). Затем можно создать тесты для возвращенного ответа, или же использовать эти данные для дальнейших тестов. Пример теста с Mailosaur: const userEmail = ' Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript ' После получения ссылки сброса пароля вы можете продолжать свои тесты – открыть ссылку, задать новый пароль и авторизоваться с ним. Это больше похоже на реальное поведение пользователя, и все шаги будут связными и последовательными. |