BDD(Behavior-Driven Development)는 매우 인기 있는 개발 모델로 요구 사항과 동작의 자연어 표현을 강조하고 테스트 사례를 통해 개발의 정확성을 보장합니다. Behat은 PHP에서 BDD를 사용하는 일반적인 도구입니다. 이 기사에서는 PHP에서 BDD 테스트를 위해 Behat을 사용하는 방법을 소개합니다.
Behat을 설치하려면 Composer를 사용해야 합니다. 터미널을 열고 다음 명령을 입력합니다.
composer require --dev behat/behat
이 명령은 Behat과 해당 종속성 패키지를 프로젝트에 설치합니다.
Behat에서 테스트를 실행하려면 구성 파일이 필요합니다. 다음 명령을 실행하세요.
vendor/bin/behat --init
다음으로 behat.yml이라는 구성 파일이 생성됩니다.
Behat 테스트 케이스는 Gherkin 언어를 기반으로 작성되었습니다. Gherkin은 소프트웨어의 동작과 요구 사항을 설명할 수 있는 자연어 DSL입니다. 예를 들어 다음은 Gherkin 형식의 간단한 테스트 사례입니다.
Feature: 登录 作为一个网站用户, 我希望能够登录到网站。 Scenario: 正确的用户名和密码 Given 我在登录页面 When 我输入正确的用户名和密码 Then 我能成功登录
다음으로 기능 디렉터리를 만들고 이 디렉터리에 login.feature라는 테스트 사례 파일을 만듭니다.
단계 정의는 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('欢迎回来'); } }
다음 명령을 실행하여 테스트를 실행합니다.
vendor/bin/behat
테스트 실행이 통과되면 다음과 유사한 결과가 나타납니다. 다음과 같이 출력됩니다.
1 scenario (1 passed) 3 steps (3 passed)
테스트가 실패하면 오류 메시지를 사용하여 문제를 해결하세요.
Behat 및 Gherkin 언어를 테스트에 사용하면 소프트웨어 동작 및 요구 사항을 더 쉽게 설명할 수 있고 테스트를 자동으로 실행할 수 있어 수동 테스트에 드는 비용과 시간이 줄어듭니다. PHP 프로젝트에서 Behat은 개발자가 소프트웨어의 품질과 정확성을 보장하는 데 도움이 되는 매우 실용적인 BDD 테스트 도구입니다.
위 내용은 PHP에서 BDD 테스트에 Behat을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!