Определяя поведение системы в структурированном формате, таком как Gherkin, разработка на основе поведения (BDD) позволяет командам преодолеть разрыв между заинтересованными сторонами, тестировщиками и разработчиками, избегая недопонимания и сокращая объем переделок. В качестве подхода к сотрудничеству BDD призывает все стороны работать вместе с самого начала, гарантируя, что все будут в
на одной и той же странице и что требования точно отражены.
В этом процессе Cucumber — популярный инструмент, используемый для реализации BDD, позволяющий командам писать понятные, исполняемые тесты, гарантирующие, что система работает должным образом.
В этом сообщении блога мы покажем вам, как настроить Cucumber в сочетании с AskUI для определения рабочих процессов AskUI с использованием принципов BDD.
AskUI установлен и настроен в вашей системе (Windows, Linux, macOS)
Удалить Askui_example/my-first-askui-test-suite.test.ts после инициализации
Cucumber пока не очень хорошо работает с настройками AskUI по умолчанию (версия 0.20.3). Чтобы AskUI хорошо работал с Cucumber, вам нужно сделать две небольшие подготовки, поскольку AskUI использует Jest в качестве средства запуска.
В файле Askui_example/helpers/jest.config.ts необходимо отключить включение кода в отчет о запуске. Этого можно добиться, добавив свойство testEnvironmentOptions со свойством addCodeInReport, имеющим значение false.
const config: Config.InitialOptions = { ... testEnvironment: '@askui/jest-allure-circus', testEnvironmentOptions: { addCodeInReport: false }, }; ...
Также в Askui_example/helpers/jest.config.ts вам необходимо расширить свойство testMatch по умолчанию. Он должен включать файлы, оканчивающиеся на Step.ts, потому что там мы будем хранить реализацию.
... const config: Config.InitialOptions = { ... testEnvironment: '@askui/jest-allure-circus', testEnvironmentOptions: { addCodeInReport: false }, testMatch: [ "**/__tests__/**/*.[jt]s?(x)", "**/?(*.) (spec|test|step).[jt]s?(x)" ] }; ...s?(x)", "**/?(*.) (spec|test|step).[jt]s?(x)" ] }; ...
Самый простой способ использовать Jest вместе с Cucumber — это npm-package jest-cucumber. Давайте установим его с помощью следующей команды:
npm install --save-dev jest-cucumbernpm install --save-dev jest-cucumber
Создайте папку Features и добавьте в нее файл Feature
NavigateToWebsite.feature
npm install --save-dev jest-cucumberкорень_проекта/ ├─ Askui_example/ ├─ особенности/ ├─ NavigateToWebsite.feature ├─ node_modules/ ├─ ...
Запишите в этот файл следующую базовую функцию
:
npm install --save-dev jest-cucumberФункция: переход на веб-сайт. Сценарий: ввод правильного URL-адреса в адресную строку браузера. Учитывая, что я нахожусь на странице поиска Google Когда я ввожу URL-адрес страницы практики AskUI Затем я попаду на веб-страницу
Создайте файл определения шага Askui_example/navigate-to-url.step.ts, где каждый тест соответствует определенному сценарию.
npm install --save-dev jest-cucumberimport { defineFeature, loadFeature } из 'jest-cucumber'; импортировать { aui } из './helpers/askui-helper'; // Загрузите файл объекта const Feature = loadFeature('features/NavigateToWebsite.feature'); defineFeature(функция, тест => { // Сопоставляется со «Сценарием» в вашем файле объектов test('Ввод правильного URL-адреса в адресную строку браузера', ({ задано, когда, затем }) => { задано('Я на странице поиска Google', async () => { дождитесь aui.moveMouse(500, 500).exec(); дождитесь aui.mouseLeftClick().exec(); дождитесь aui.pressTwoKeys('command', 't').exec(); }); When('Я ввожу URL-адрес страницы практики AskUI', async () => { ожидайте aui.typeIn('https://askui.github.io/askui-practice-page/').textfield().exec(); дождитесь aui.pressKey('enter').exec(); }); then('Я перейду на веб-страницу', async () => { await aui.expect().text('Добро пожаловать на страницу практики AskUI').exists().exec(); }); }); });
Откройте браузер в полноэкранном режиме и начните рабочий процесс с помощью:
npm install --save-dev jest-cucumbernpm run Askui
Вы должны увидеть, что при запуске рабочего процесса откроется новая вкладка и вы перейдете на страницу практики AskUI.
Объединение AskUI с Cucumber позволяет писать рабочие процессы AskUI в стиле BDD. Выполнение ваших тестов как настоящий пользователь сделает их более реалистичными для каждой заинтересованной стороны.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3