Dengan mentakrifkan gelagat sistem dalam format berstruktur seperti Gherkin, Pembangunan Didorong Tingkah Laku (BDD) membolehkan pasukan merapatkan jurang antara pihak berkepentingan, penguji dan pembangun, mengelakkan salah faham dan mengurangkan kerja semula. Sebagai pendekatan kolaboratif, BDD menggalakkan semua pihak untuk bekerjasama dari awal lagi, memastikan semua orang berada di
halaman yang sama dan keperluan itu ditangkap dengan tepat.
Dalam proses ini, Timun ialah alat popular yang digunakan untuk melaksanakan BDD, membolehkan pasukan menulis ujian yang jelas dan boleh dilaksanakan yang memastikan sistem berkelakuan seperti yang diharapkan.
Dalam catatan blog ini, kami akan menunjukkan kepada anda cara menyediakan Timun bersama AskUI untuk menentukan aliran kerja AskUI menggunakan prinsip BDD.
AskUI dipasang dan dikonfigurasikan pada sistem anda (Windows, Linux, macOS)
Padam askui_example/my-first-askui-test-suite.test.ts selepas pemula
Timun tidak berfungsi dengan baik dengan persediaan lalai AskUI lagi (Versi 0.20.3). Untuk AskUI bermain bagus dengan Cucumber, anda perlu melakukan dua persediaan kecil kerana AskUI menggunakan Jest sebagai pelarinya.
Dalam fail askui_example/helpers/jest.config.ts anda perlu melumpuhkan kod itu disertakan dalam laporan jalankan. Anda mencapai ini dengan menambahkan sifat testEnvironmentOptions dengan sifat addCodeInReport ditetapkan kepada palsu.
const config: Config.InitialOptions = { ... testEnvironment: '@askui/jest-allure-circus', testEnvironmentOptions: { addCodeInReport: false }, }; ...
Juga dalam askui_example/helpers/jest.config.ts anda perlu mengembangkan sifat testMatch lalai. Ia mesti termasuk fail yang berakhir dengan step.ts kerana kami akan menyimpan pelaksanaan di sana.
... const config: Config.InitialOptions = { ... testEnvironment: '@askui/jest-allure-circus', testEnvironmentOptions: { addCodeInReport: false }, testMatch: [ "**/__tests__/**/*.[jt]s?(x)", "**/?(*.)+(spec|test|step).[jt]s?(x)" ] }; ...
Cara paling mudah untuk menggunakan Jest bersama Timun ialah npm-package jest-cucumber. Mari pasang dengan arahan berikut:
npm install --save-dev jest-cucumber
Buat ciri folder dan di dalamnya terdapat fail Ciri NavigateToWebsite.feature
project_root/ ├─ askui_example/ ├─ features/ ├─ NavigateToWebsite.feature ├─ node_modules/ ├─ ...
Tulis asas berikut Ciri ke dalam fail ini:
Feature: Navigate to a website Scenario: Entering the correct URL into the browser address bar Given I am on the Google search page When I type in the URL for AskUI practice page Then I will land on the webpage
Buat fail definisi langkah askui_example/navigate-to-url.step.ts di mana setiap ujian memetakan kepada senario tertentu.
import { defineFeature, loadFeature } from 'jest-cucumber'; import { aui } from './helpers/askui-helper'; // Load the feature file const feature = loadFeature('features/NavigateToWebsite.feature'); defineFeature(feature, test => { // Maps to 'Scenario' in your feature file test('Entering the correct URL into the browser address bar', ({ given, when, then }) => { given('I am on the Google search page', async () => { await aui.moveMouse(500, 500).exec(); await aui.mouseLeftClick().exec(); await aui.pressTwoKeys('command', 't').exec(); }); when('I type in the URL for AskUI practice page', async () => { await aui.typeIn('https://askui.github.io/askui-practice-page/').textfield().exec(); await aui.pressKey('enter').exec(); }); then('I will land on the webpage', async () => { await aui.expect().text('Welcome to the AskUI Practice Page').exists().exec(); }); }); });
Buka penyemak imbas anda dalam skrin penuh dan mulakan aliran kerja dengan:
npm run askui
Anda sepatutnya melihat bahawa aliran kerja yang dijalankan akan membuka tab baharu dan menavigasi ke halaman amalan AskUI.
Menggabungkan AskUI dengan Timun membolehkan anda menulis aliran kerja AskUI dalam gaya BDD. Melaksanakan ujian anda seperti pengguna manusia sebenar akan menjadikannya lebih realistik untuk setiap pemegang kepentingan.
Atas ialah kandungan terperinci Gunakan AskUI dan Timun Bersama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!