Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan Behat untuk ujian BDD dalam PHP

Cara menggunakan Behat untuk ujian BDD dalam PHP

WBOY
WBOYasal
2023-06-27 09:27:171253semak imbas

BDD (Pembangunan Didorong Tingkah Laku) ialah model pembangunan yang sangat popular Ia menekankan ungkapan bahasa semula jadi keperluan dan tingkah laku, dan memastikan ketepatan pembangunan melalui kes ujian. Behat ialah alat biasa untuk menggunakan BDD dalam PHP Artikel ini akan memperkenalkan cara menggunakan Behat untuk ujian BDD dalam PHP.

1. Pasang Behat

Untuk memasang Behat, anda perlu menggunakan Composer Buka terminal dan masukkan arahan berikut:

composer require --dev behat/behat

Arahan ini akan memasang Behat dan pakej kebergantungannya ke dalam projek anda.

2. Cipta fail konfigurasi Behat

Behat memerlukan fail konfigurasi untuk menjalankan ujian, laksanakan arahan berikut:

vendor/bin/behat --init

Seterusnya, fail konfigurasi bernama behat.yml akan dibuat.

3. Cipta kes ujian

Behat kes ujian ditulis berdasarkan bahasa Gherkin. Gherkin ialah DSL bahasa semula jadi yang boleh menerangkan tingkah laku dan keperluan perisian. Sebagai contoh, berikut ialah kes ujian mudah dalam format Gherkin:

Feature: 登录
  作为一个网站用户,
  我希望能够登录到网站。

  Scenario: 正确的用户名和密码
    Given 我在登录页面
    When 我输入正确的用户名和密码
    Then 我能成功登录

Seterusnya, cipta direktori ciri dan cipta fail kes ujian bernama login.feature dalam direktori ini.

4. Cipta Definisi Langkah

Definisi Langkah ialah jambatan antara kes ujian Behat dan kod PHP, ia menukar kes ujian kepada kod boleh laku. Jalankan arahan berikut untuk menjana fail Step Definitions:

vendor/bin/behat --append-snippets

Seterusnya, Behat akan menggesa anda untuk menambah kod pada fail FeatureContext.php, yang terletak dalam direktori features/bootstrap.

Sebagai contoh, dalam kes ujian di atas, Definisi Langkah boleh dilaksanakan sebagai:

<?php
use BehatBehatContextContext;
use BehatBehatTesterExceptionPendingException;
use BehatBehatHookScopeAfterScenarioScope;
use BehatMinkExtensionContextMinkContext;
use BehatTestworkHookScopeBeforeSuiteScope;
use BehatchContextJsonContext;
use BehatchContextRestContext;
use DotenvDotenv;

/**
 * Feature context.
 */
class FeatureContext extends MinkContext implements Context
{
    private $baseUrl;

    /**
     * @BeforeSuite
     */
    public static function loadEnvironmentVariables(BeforeSuiteScope $scope)
    {
        if (is_readable(__DIR__ . '/../../.env')) {
            (new Dotenv(__DIR__ . '/../../'))->load();
        }
    }

    /**
     * @BeforeScenario
     */
    public function before(AfterScenarioScope $scope)
    {
        $this->baseUrl = getenv('BASE_URL');
    }

    /**
     * @Given 我在登录页面
     */
    public function 我在登录页面()
    {
        $this->visit($this->baseUrl . '/login');
    }

    /**
     * @When 我输入正确的用户名和密码
     */
    public function 我输入正确的用户名和密码()
    {
        $this->fillField('用户名', 'admin');
        $this->fillField('密码', 'password');
        $this->pressButton('登录');
    }

    /**
     * @Then 我能成功登录
     */
    public function 我能成功登录()
    {
        $this->assertPageContainsText('欢迎回来');
    }
}

5 Jalankan ujian

Jalankan arahan berikut untuk melaksanakan ujian:

vendor/bin/behat

Jika ujian berjalan, keputusan serupa dengan. berikut akan dikeluarkan:

1 scenario (1 passed)
3 steps (3 passed)

Jika ujian gagal, gunakan mesej ralat untuk menyelesaikan masalah.

Kesimpulan

Dengan menggunakan bahasa Behat dan Gherkin ​​untuk ujian, tingkah laku dan keperluan perisian boleh diterangkan dengan lebih mudah, dan ujian boleh dijalankan secara automatik, mengurangkan kos dan masa ujian manual. Dalam projek PHP, Behat ialah alat ujian BDD yang sangat praktikal yang boleh membantu pembangun memastikan kualiti dan ketepatan perisian.

Atas ialah kandungan terperinci Cara menggunakan Behat untuk ujian BDD dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn