PHP에서 BDD 테스트에 Behat을 사용하는 방법

WBOY
풀어 주다: 2023-06-27 10:36:01
원래의
1222명이 탐색했습니다.

BDD(Behavior-Driven Development)는 매우 인기 있는 개발 모델로 요구 사항과 동작의 자연어 표현을 강조하고 테스트 사례를 통해 개발의 정확성을 보장합니다. Behat은 PHP에서 BDD를 사용하는 일반적인 도구입니다. 이 기사에서는 PHP에서 BDD 테스트를 위해 Behat을 사용하는 방법을 소개합니다.

1. Behat 설치

Behat을 설치하려면 Composer를 사용해야 합니다. 터미널을 열고 다음 명령을 입력합니다.

composer require --dev behat/behat
로그인 후 복사

이 명령은 Behat과 해당 종속성 패키지를 프로젝트에 설치합니다.

2. Behat 구성 파일 생성

Behat에서 테스트를 실행하려면 구성 파일이 필요합니다. 다음 명령을 실행하세요.

vendor/bin/behat --init
로그인 후 복사

다음으로 behat.yml이라는 구성 파일이 생성됩니다.

3. 테스트 케이스 만들기

Behat 테스트 케이스는 Gherkin 언어를 기반으로 작성되었습니다. Gherkin은 소프트웨어의 동작과 요구 사항을 설명할 수 있는 자연어 DSL입니다. 예를 들어 다음은 Gherkin 형식의 간단한 테스트 사례입니다.

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

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

다음으로 기능 디렉터리를 만들고 이 디렉터리에 login.feature라는 테스트 사례 파일을 만듭니다.

4. 단계 정의 만들기

단계 정의는 Behat 테스트 케이스와 PHP 코드 사이의 브리지이며, 테스트 케이스를 실행 가능한 코드로 변환합니다. 다음 명령을 실행하여 단계 정의 파일을 생성합니다.

vendor/bin/behat --append-snippets
로그인 후 복사

다음으로 Behat은 기능/부트스트랩 디렉터리에 있는 FeatureContext.php 파일에 코드를 추가하라는 메시지를 표시합니다.

예를 들어 위 테스트 사례에서 단계 정의는 다음과 같이 구현할 수 있습니다.

<?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. 테스트를 실행합니다.

다음 명령을 실행하여 테스트를 실행합니다.

vendor/bin/behat
로그인 후 복사

테스트 실행이 통과되면 다음과 유사한 결과가 나타납니다. 다음과 같이 출력됩니다.

1 scenario (1 passed)
3 steps (3 passed)
로그인 후 복사

테스트가 실패하면 오류 메시지를 사용하여 문제를 해결하세요.

결론

Behat 및 Gherkin 언어를 테스트에 사용하면 소프트웨어 동작 및 요구 사항을 더 쉽게 설명할 수 있고 테스트를 자동으로 실행할 수 있어 수동 테스트에 드는 비용과 시간이 줄어듭니다. PHP 프로젝트에서 Behat은 개발자가 소프트웨어의 품질과 정확성을 보장하는 데 도움이 되는 매우 실용적인 BDD 테스트 도구입니다.

위 내용은 PHP에서 BDD 테스트에 Behat을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿