測試:入門
介紹
Laravel 在建立時有考慮到測試這件事。事實上,內建已經支援使用 PHPUnit 測試,而且 phpunit.xml
檔案也已經幫你設定好應用程式的測試設定。框架還附帶便利的輔助函式方法,可以讓你更直觀的測試應用程式。
預設應用程式的 tests
目錄會有兩個子目錄:Feature
和 Unit
。單元測試主要測試非常小且能獨立於你的程式碼部分。實際上,大多數的單元測試可能只專注於單一個方法。功能測試可以測試大部分的程式碼,包含一些物件如何進行互動,甚至是完整的 HTTP 請求到一個 JSON 端點。
Feature
和 Unit
測試目錄都提供了一個名為 ExampleTest.php
的檔案。在安裝新 Laravel 應用程式之後,在命令列上執行 phpunit
來執行你的測試。
環境
透過 phpunit
執行測試時,因為在 phpunit.xml
檔案定義環境變數,Laravel 會自動將環境設定為 testing
。Laravel 還會在測試時自動將 Session 和快取設定到 array
驅動,也就是說不會保留在測試時的 Session 或快取資料。
你是可以自由的根據需要來定義其他測試環境設定值。testing
環境變數可以被設定在 phpunit.xml
檔案中,但是要確保在執行測試前有執行 Artisan 指令的 config:clear
來清除設定檔的快取!
建立並執行測試
要建立一個新的測試案例,請使用 Artisan 指令的 make:test
:
// 在功能測試目錄建立一個測試...
php artisan make:test UserTest
// 在單元測試目錄建立一個測試...
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
方法,請別忘了呼叫parent::setUp()
。