>PHP 프레임워크 >Laravel >Laravel 개발: 엔드투엔드 테스트에 Laravel 테스트를 사용하는 방법은 무엇입니까?

Laravel 개발: 엔드투엔드 테스트에 Laravel 테스트를 사용하는 방법은 무엇입니까?

王林
王林원래의
2023-06-14 22:37:261657검색

Laravel은 웹 애플리케이션에 강력한 인프라와 즉시 사용 가능한 기능을 제공하는 인기 있는 PHP 프레임워크입니다. 그 중 하나는 Laravel 애플리케이션에 대한 빠른 엔드투엔드 테스트 메커니즘을 제공하는 Laravel Testing입니다. 이 기사에서는 엔드투엔드 테스트를 위해 Laravel 테스트를 사용하는 방법을 알아봅니다.

종단 간 테스트가 필요한 이유는 무엇입니까?

소프트웨어 개발 과정에서 테스트는 소프트웨어 품질을 보장하는 중요한 부분입니다. 웹 애플리케이션에서 엔드투엔드 테스트는 테스트의 마지막 단계이자 최종 승인 단계입니다. 엔드투엔드 테스트는 일반적으로 실제 사용자 작업을 시뮬레이션하고 웹 애플리케이션이 제대로 작동할 수 있는지 테스트하기 위해 자동화된 테스트 스크립트로 완료됩니다.

종단 간 테스트를 사용하여 다음을 수행합니다.

  • 애플리케이션이 기대치를 충족하는지 확인
  • 애플리케이션이 작동 가능하고 응답성이 있는지 확인
  • 버그 및 오류 잡기

Laravel 테스트의 기본

Laravel 테스트는 Laravel 프레임워크와 함께 제공되는 테스트 라이브러리는 테스트를 작성하고 실제 사용자 상호 작용을 시뮬레이션하기 위한 다양한 방법과 도구를 제공합니다.

Laravel Testing에서는 테스트 클래스를 생성하고 PHPUnit을 사용하여 테스트할 수 있습니다. LaravelTesting은 경로 및 페이지 액세스와 같은 Laravel 애플리케이션 기능을 더 쉽게 사용할 수 있도록 PHPUnit에 추가 기능 확장을 제공합니다.

종단 간 테스트를 위해 Laravel 테스트를 사용할 때 주로 다음 구성 요소를 사용합니다.

  • 브라우저 테스트 구성 요소(BrowserKit 테스트): HTTP 요청 및 응답을 시뮬레이션하여 웹 애플리케이션이 올바르게 응답할 수 있는지 테스트할 수 있습니다.
  • 대기열 테스트: Laravel의 대기열 기능을 테스트하여 올바르게 실행되는지 확인할 수 있습니다.

종단 간 테스트 작성

이 섹션에서는 로그인 페이지와 등록 페이지의 기능을 테스트하기 위해 간단한 종단 간 테스트를 작성하겠습니다.

준비

먼저 PHPUnit 및 Laravel 테스트 라이브러리를 설치해야 합니다. Composer를 사용하여 이러한 작업을 수행할 수 있습니다.

터미널 창에 다음 명령을 입력하여 PHPUnit 설치를 완료하세요.

composer require --dev phpunit/phpunit

그런 다음 다음 명령을 사용하여 Laravel 테스트 라이브러리를 설치할 수 있습니다.

composer require --dev orchestra/testbench-browser-kit

설치가 완료되면 테스트 작성을 시작할 수 있습니다.

테스트 작성

Creating TestCase Class

Laravel Testing의 기능을 사용할 수 있도록 TestCase 클래스를 생성하고 Laravel 클래스에서 확장해 보겠습니다. 터미널 창에 다음 명령을 입력하세요:

php artisan make:test EndToEndExampleTest

이 명령은 /tests/ 디렉터리에 EndToEndExampleTest.php 파일을 생성합니다. 전체 파일의 내용을 다음 예제 코드로 바꿉니다:

<?php

namespace TestsFeature;

use IlluminateFoundationTestingRefreshDatabase;
use LaravelBrowserKitTestingTestCase as BaseTestCase;

abstract class EndToEndTestCase extends BaseTestCase
{
    use CreatesApplication;
}

테스트 만들기

테스트 작성을 시작하기 전에 Laravel 애플리케이션이 실행 중인지 확인해야 합니다. 다음 명령을 사용하여 애플리케이션을 시작할 수 있습니다.

php artisan serve

이제 로그인 및 등록 기능을 테스트하는 테스트를 작성할 수 있습니다. EndToEndExampleTest 테스트 클래스에 다음 테스트 메서드를 추가합니다:

public function testUserRegistration()
{
    $this->browse(function ($browser) {
        // 访问登陆页面
        $browser->visit('/login')
                ->assertSee('Login')
                ->assertSee('Email')
                ->assertSee('Password');
                
        // 注册新用户
        $browser->visit('/register')
                ->type('name', 'John Doe')
                ->type('email', 'johndoe@example.com')
                ->type('password', 'password')
                ->type('password_confirmation', 'password')
                ->press('Register')
                ->assertPathIs('/home');
                
        // 退出登录
        $browser->click('#navbarDropdown')
                ->assertSee('Logout')
                ->clickLink('Logout')
                ->assertPathIs('/');
    });
}

위 테스트에서는 Laravel Testing의 브라우저 테스트 구성 요소를 사용하여 사용자 작업을 시뮬레이션했습니다. 로그인 페이지를 방문하여 로그인 양식을 제출한 다음 등록 페이지를 방문하여 새 사용자를 생성하고 마지막으로 로그아웃합니다. 출력이 예상한 대로인지, 요청한 경로와 위치가 올바른지 확인합니다.

다음 명령을 사용하여 테스트를 실행할 수 있습니다.

php artisan test --testsuite=Feature

실행이 완료되면 콘솔에 테스트 결과가 표시됩니다.

요약

Laravel 테스트는 Laravel 프레임워크와 함께 제공되는 테스트 라이브러리로, 간단하고 친숙한 엔드투엔드 테스트 도구와 기능 확장을 제공하여 테스트 스크립트를 더 쉽게 작성하고 실행할 수 있도록 해줍니다. 이 기사에서는 엔드투엔드 테스트를 위해 Laravel 테스트를 사용하는 방법을 배웠고 기본 로그인 및 등록 테스트를 생성하여 브라우저 테스트에 Laravel 테스트를 사용하는 방법을 시연했습니다. 실제로 필요에 따라 테스트를 사용자 정의하고 애플리케이션의 다양한 측면을 검증할 수 있습니다.

위 내용은 Laravel 개발: 엔드투엔드 테스트에 Laravel 테스트를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.