빠른 시작


ㅋㅋ 환경
소개
Laravel은 DNA 테스트를 통해 탄생했습니다. 실제로 Laravel은 기본적으로 테스트를 위해 PHPUnit을 지원하며 애플리케이션에 맞게 구성된 phpunit.xml 파일을 가지고 있습니다. 또한 프레임워크는 애플리케이션을 보다 직관적으로 테스트할 수 있도록 몇 가지 편리한 도우미 기능을 제공합니다.

기본적으로 애플리케이션의 tests 디렉터리에는 FeatureUnit라는 두 개의 하위 디렉터리가 포함되어 있습니다. 단위 테스트는 코드의 매우 작고 상대적으로 독립적인 부분을 테스트하는 것입니다. 실제로 대부분의 단위 테스트는 단일 메서드에 대해 수행됩니다. 기능 테스트는 여러 개체 간의 상호 작용과 JSON 엔드포인트에 대한 전체 HTTP 요청을 포함하여 광범위한 코드 영역을 테스트하는 것입니다.
  • ExampleTest.php 테스트 예제 파일은 FeatureUnit 디렉터리에 모두 제공됩니다. 새로운 Laravel 애플리케이션을 설치한 후 명령줄에서 phpunit 명령을 실행하여 테스트를 실행하세요.
  • 환경

    테스트를 위해 phpunit을 사용할 때 Laravel은 phpunit.xml에 설정된 환경 변수를 기반으로 자동으로 환경을 testing으로 설정합니다. file 로 저장하고 배열 형식으로 세션과 캐시를 저장합니다. 즉, 테스트 중에 세션이나 캐시 데이터가 유지되지 않습니다. phpunit 进行测试时,Laravel 将根据  phpunit.xml 文件设定的环境变量自动将环境设置为 testing,并将 Session 及缓存以 array 的形式存储,也就是说在测试时不会持久化任何 Session 或缓存数据。

    你可以随意创建其它必要的测试环境配置。testing 环境变量可以在 phpunit.xml 文件中修改,但是在运行测试之前,请确保使用 config:clear Artisan 命令来清除配置信息的缓存!

    此外,你还可以在你的项目根目录下创建一个 .env.testing 文件,在运行单元测试,或者使用带有 --env=testing 选项的 Artisan 命令时, .env 文件中的变量会被这个文件覆盖。

    定义并运行测试

    可以使用 Artisan 命令 make:test 创建一个测试用例:

    // 在 Feature 目录下创建一个测试类...php artisan make:test UserTest// 在 Unit 目录下创建一个测试类...php artisan make:test UserTest --unit

    测试类生成之后,你就可以像平常使用 PHPUnit 一样来定义测试方法。要运行测试只需要在终端上运行 phpunit 命令即可:

    <?php
        namespace Tests\Unit;
        use Tests\TestCase;
        use Illuminate\Foundation\Testing\RefreshDatabase;
        class ExampleTest extends TestCase{   
         /**
         * 一个基本的测试示例。
         *
         * @return void
         */   
        public function testBasicTest()  
          {      
            $this->assertTrue(true);  
           }
        }

    {note} 如果要在你的测试类中定义自己的 setUp / tearDown 方法,请确保调用了父类中的 parent::setUp() / parent::tearDown()

    기타 필요한 테스트 환경 구성을 마음대로 만들 수 있습니다. 테스트 환경 변수는 phpunit.xml 파일에서 수정할 수 있지만 테스트를 실행하기 전에 config:clear를 사용하여 구성을 지워야 합니다. 장인의 명령 정보 캐싱!
    또한 프로젝트 루트 디렉터리에 .env.testing 파일을 생성하여 단위 테스트를 실행하거나 Artisan을 사용할 때 --env=testing을 사용할 수도 있습니다. 명령을 옵션과 함께 사용하면 .env 파일의 변수가 이 파일로 덮어쓰여집니다.