# 測試
- [簡介](#introduction)
- [測試環境](#environment)
- [定義并運行測試](#creating-and-running-tests)
<a name="introduction"></a>
## 簡介
Laravel 天生就具有測試的基因。事實上,Laravel 默認就支持用 PHPUnit 來做測試,并為你的應用程序配置好了 `phpunit.xml` 文件。框架還提供了一些便利的輔助函數,讓你可以更直觀的測試應用程序。
在 `tests` 目錄中有提供一個 `ExampleTest.php` 的示例文件。安裝新的 Laravel 應用程序之后,只需在命令行上運行 `phpunit` 就可以進行測試。
<a name="environment"></a>
## 測試環境
在運行測試時,Laravel 會自動將環境變量設置為 `testing`,并將 Session 及緩存以 `array` 的形式存儲,也就是說在測試時不會持久化任何 Session 或緩存數據。
你可以隨意創建其它必要的測試環境配置。`testing` 環境的變量可以在 `phpunit.xml` 文件中被修改,但是在運行測試之前,請確保使用 `config:clear` Artisan 命令來清除配置信息的緩存。
<a name="creating-and-running-tests"></a>
## 定義并運行測試
可以使用 `make:test` Artisan 命令,創建一個測試案例:
php artisan make:test UserTest
此命令會放置一個新的 `UserTest` 類至你的 `tests` 目錄。接著就可以像平常使用 PHPUnit 一樣來定義測試方法。要運行測試只需要在終端上運行 `phpunit` 命令即可:
<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class UserTest extends TestCase
{
/**
* 基本的測試樣例。
*
* @return void
*/
public function testExample()
{
$this->assertTrue(true);
}
}
> {note} 如果要在你的類自定義自己的 `setUp` 方法,請確保調用了 `parent::setUp`。
## 譯者署名
| 用戶名 | 頭像 | 職能 | 簽名 |
|---|---|---|---|
| [@JobsLong](https://phphub.org/users/56) | <img class="avatar-66 rm-style" src="http://i4.buimg.com/567571/a3dc28a55fdb2b7a.png"> | 翻譯 | 個人主頁:[http://jobslong.com](http://jobslong.com) |
- 說明
- 翻譯說明
- 發行說明
- 升級說明
- 貢獻導引
- 入門指南
- 安裝
- 配置信息
- 文件夾結構
- 錯誤與日志
- 開發環境
- HomeStead
- Valet
- 核心概念
- 服務容器
- 服務提供者
- 門面(facades)
- contracts
- HTTP層
- 路由
- 中間件
- CSRF保護
- 控制器
- 請求
- 響應
- Session
- 表單驗證
- 視圖與模板
- 視圖
- Blade模板
- 本地化
- Javascript與CSS
- 入門指南
- laravel-elixir
- 安全
- 用戶認證
- 用戶授權
- 重置密碼
- API授權
- 加密解密
- 哈希
- 綜合話題
- 廣播系統
- 緩存系統
- 事件系統
- 文件存儲
- 郵件發送
- 消息通知
- 隊列
- 數據庫
- 快速入門
- 查詢構造器
- 分頁
- 數據庫遷移
- 數據填充
- redis
- Eloquent ORM
- 快速入門
- 模型關聯
- Eloquent集合
- 修改器
- 序列化
- Artisan控制臺
- Artisan 命令行
- 任務調度
- 測試
- 快速入門
- 應用程序測試
- 數據庫測試
- 模擬器
- 官方擴展包
- Cashier交易包
- Envoy 部署工具
- Passport OAuth 認證
- Scout 全文搜索
- Socialite 社交化登錄
- 附錄
- 集合
- 輔助函數
- 擴展包開發
- 交流說明