快速入門
快速入門
測試:入門指南
介紹
Laravel 天生就具有測試的基因。事實上,Laravel 默認就支持用 PHPUnit 來做測試,并為你的應用程序配置好了 phpunit.xml 文件。框架還提供了一些便利的輔助函數,讓你可以更直觀的測試你的應用程序。
默認情況,你的應用 tests
目錄中包含兩個子目錄:Feature
和 Unit
。單元測試是針對你的代碼中非常少,而且相對獨立的一部分代碼來進行的測試。實際上,大部分單元測試都是針對單個方法進行的。功能測試是針對大面積代碼進行的測試,包括多個對象之間的交互,甚至是對 JSON 端點的完整 HTTP 請求。
Feature
和 Unit
目錄中都提供一個 ExampleTest.php
測試示例文件。安裝一個新的 Laravel 應用程序之后,在命令行下運行 phpunit
命令,即可運行測試。
環(huán)境
在使用 phpunit
進行測試時,Laravel 將根據 phpunit.xml
文件設定的環(huán)境變量自動將環(huán)境設置為 testing
,并將 Session 及緩存以 array
的形式存儲,也就是說在測試時不會持久化任何 Session 或緩存數據。
你可以隨意創(chuàng)建其它必要的測試環(huán)境配置。testing
環(huán)境變量可以在 phpunit.xml
文件中修改,但是在運行測試之前,請確保使用 config:clear
Artisan 命令來清除配置信息的緩存!
此外,你還可以在你的項目根目錄下創(chuàng)建一個 .env.testing
文件,在運行單元測試,或者使用帶有 --env=testing
選項的 Artisan 命令時, .env
文件中的變量會被這個文件覆蓋。
定義并運行測試
可以使用 Artisan 命令 make:test
創(chuàng)建一個測試用例:
// 在 Feature 目錄下創(chuàng)建一個測試類...php artisan make:test UserTest// 在 Unit 目錄下創(chuàng)建一個測試類...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()
方法。