關於要怎麼進行 TDD 已經寫了十多篇文章介紹了,就讓我們進入實戰練習吧!
接下來數篇都會利用 TDD 來開發 Laravel 的專案,Laravel 是相當廣泛使用的 Web 框架,功能強大齊全。
主要還是會著重在 TDD 的練習與開發上,對於 Laravel 的介紹預計都只有簡單帶過,有興趣可以參考 Laravel 官方文件。
Laravel 已直接內建了數個測試用的套件,其中包含介紹過的 PHPUnit 及 Mockery。
PHPUnit 原本就提供了許多好用的 assert 函式,而 Laravel 則進一步將其擴展,更方便對 Web 的功能進行測試。
說安裝其實不太一樣,而是創建 Laravel 專案資料夾,有兩個方法:
$ composer global require laravel/installer
$ laravel new project_name
$ composer create-project --prefer-dist laravel/laravel project_name
創建好的 Laravel 專案資料夾,裡面已經包含了 index 頁面。
$ php artisan serve
就可以在 http://127.0.0.1:8000
看到預設的頁面。
tests/
資料夾中有放了測試範例可以參考:
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class ExampleTest extends TestCase
{
public function testBasicTest()
{
$response = $this->get('/');
$response->assertStatus(200);
}
}
這個 Laravel 測試範例會對 /
(index) 發出一個 Get 請求,並測試 response 的狀態碼是否是 200,也就是請求已完成。
assertStatus()
是原本 PHPUnit 沒有的判斷函式,之後還會再看到更多好用的函式們。