Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Behat dalam pengaturcaraan PHP?

Bagaimana untuk menggunakan Behat dalam pengaturcaraan PHP?

WBOY
WBOYasal
2023-06-12 08:39:451399semak imbas

Dalam pengaturcaraan PHP, Behat ialah alat yang sangat berguna, yang boleh membantu pengaturcara memahami keperluan perniagaan dengan lebih baik semasa proses pembangunan dan memastikan kualiti kod. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Behat dalam pengaturcaraan PHP.

1. Apakah itu Behat?

Behat ialah rangka kerja pembangunan dipacu tingkah laku (BDD) yang menggabungkan kod PHP melalui penerangan bahasa (kes penggunaan yang ditulis dalam bahasa Gherkin), dengan itu membolehkan kod dan keperluan perniagaan berfungsi bersama. Menggunakan Behat untuk ujian membolehkan pengaturcara berubah daripada pengesahan tatabahasa dan tingkah laku yang mudah kepada menggunakan bahasa semula jadi untuk menyatakan kejadian perniagaan dan mengesahkan kejadian ini secara automatik. Behat menghubungkan dengan sempurna keperluan perihalan "klien" dan pemprosesan pelaksanaan "pelayan".

2. Pemasangan Behat

Gunakan komposer (pengurus pakej PHP) untuk memasang Behat. Buka konsol (terminal) dalam direktori projek dan masukkan arahan berikut:

composer require --dev behat/behat

Peringatan: --dev bermaksud Behat digunakan dalam pembangunan. Jika anda menggunakan Behat dalam persekitaran pengeluaran, anda tidak seharusnya menambah parameter --dev.

3. Tulis Ciri

Selepas melengkapkan pemasangan, kami boleh mencipta Ciri dalam direktori APP_PATH/features/:

Feature: 搜索
  我想在“首页”上搜索某个商品
  为了快捷找到我需要的商品
  我需要查询到相应结果

  Scenario: 搜索结果是正确的
    Given 我在“首页”页面
    When 我输入“水杯”作为搜索关键字
    And 我点击“搜索”按钮
    Then 我应该看到网页标题包含“水杯”

Bahasa Gherkin di atas menerangkan Ciri, yang mengandungi Satu set senario (Senario) yang menerangkan cara melengkapkan carian dan mengesahkan keputusan.

4. Konfigurasikan Behat

Kita perlu menentukan pilihan konfigurasi Behat melalui konfigurasi fail konfigurasi/behat.yml. Berikut ialah fail konfigurasi ringkas:

default:
  suites:
    default:
      contexts:
        - FeatureContext
      filters:
        tags: ''
  extensions:
    BehatMinkExtension:
      base_url: "http://localhost/"
      files_path: "%paths.base%/persistent/files"
      goutte: ~
      selenium2: ~
    BehatSymfony2Extension:
      kernel:
        env: test
        debug: true

Fail konfigurasi ini memberitahu Behat kelas Konteks yang perlu digunakan dan jenis penyemak imbas yang perlu digunakan.

5 Tulis kelas Konteks

Kita perlu mencipta kelas Konteks untuk mengendalikan langkah yang ditakrifkan dalam Ciri dan memanggil kod ujian bertulis untuk mengesahkan ketepatan kod. Codeception dan PHPUnit ialah beberapa perpustakaan ujian yang menyokong Behat Kami akan menggunakan PHPUnit untuk menunjukkan cara menulis kelas Konteks.

Buat FeatureContext.php dalam direktori APP_PATH/features/bootstrap/ dan tambahkan kod berikut:

<?php

use BehatBehatContextContext;
use BehatBehatHookScopeBeforeFeatureScope;
use BehatBehatTesterExceptionPendingException;
use BehatMinkWebAssert;
use BehatMinkExtensionContextMinkContext;
use PHPUnitFrameworkAssert as PHPUnit;

class FeatureContext extends MinkContext implements Context
{
 
    public function __construct($baseUrl)
    {
        $this->baseUrl = $baseUrl;
    }
 
    /**
     * @param BeforeFeatureScope $scope
     */
    public static function setup(BeforeFeatureScope $scope)
    {
        // 配置数据库等其他代码
    }

    /**
     * @Given /^我在“(.*)”页面$/
     */
    public function 在页面($page)
    {
        $this->visitPath(sprintf('/%s', $page));
    }

    /**
     * @When /^我输入“(.*)”作为搜索关键字$/
     */
    public function 输入作为搜索关键字($keyword)
    {
        $page = $this->getPage();
        $searchForm = $page->find('css', 'form[action="/search"]');
        $searchInput = $searchForm->find('css', 'input[type="text"]');
        $searchInput->setValue($keyword);
    }

    /**
     * @When /^我点击“(.*)”按钮$/
     */
    public function 点击按钮($button)
    {
        $page = $this->getPage();
        $button = $page->find('css', sprintf('input[type="submit"][value="%s"]', $button));
        $button->click();
    }

    /**
     * @Then /^我应该看到网页标题包含“(.*?)”$/
     */
    public function 应该看到网页标题包含($expected)
    {
        PHPUnit::assertTrue(stripos($this->getSession()->getPage()->getTitle(), $expected) !== false);
    }
}

Kod di atas mentakrifkan satu set langkah (langkah) untuk senario yang ditakrifkan dalam Ciri ( senario) telah dilaksanakan.

6. Jalankan ujian

Lakukan arahan berikut dalam konsol:

vendor/bin/behat

Selepas melaksanakan arahan, Behat akan berdasarkan konfigurasi/behat Konfigurasi dalam fail .yml dilaksanakan pada fail Ciri. Konsol mungkin mempunyai beberapa bar kemajuan dan gesaan ralat, dan akhirnya lulus ujian atau maklumat kegagalan akan disenaraikan.

Di sini, kami telah mempelajari cara menggunakan Behat dalam pengaturcaraan PHP untuk menyelesaikan ujian. Menggunakan Behat boleh meningkatkan ekspresi kod perniagaan, mengurangkan isu kualiti semasa proses pembangunan, dan meningkatkan kerjasama pembangunan pasukan dan kecekapan kemajuan keseluruhan.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Behat dalam pengaturcaraan 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