2016/01/17

[TDD] 基礎 PHPUnit 設定

設定 PHPUnit 專案環境

開始一個簡易的 PHPUnit 專案之前
  1. PHP 5.5+ (5.4 不再更新了, 就升級吧!!)
  2. 先確認 Composer 已安裝
  3. 安裝全域用的 PHPUnit (composer global require phpunit/phpunit)
專案的資料夾結構如下:
Project/
    |-- tests/  (放測試的檔案)
    |-- src/    (放置原始碼)
開啟 Terminal 或 Cmd 等指令輸入工具
用 Composer 安裝 PHPUnit 套件於專案中使用
composer require phpunit/phpunit --dev
修改 composer.json 檔案, 將 src 對應至 autoload
依需求變更 namespace
{
    ...

    "autoload": {
        "psr-4": {
            "": "src/"
        }
    }
}
執行更新 autoload 的檔案
composer dump-autoload
新增 PHPUnit 的設定檔 phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php">
</phpunit>
最基本的設定就完成囉!!

測試檔

一個最基本的測試檔案: (目標物件)Test.php
例如: 針對 Product 物件進行測試, 則測試檔可命名為 ProductTest.php
<?php
class ProductTest extends PHPUnit_Framework_TestCase
{
    /** @test */
    public function a_product_has_a_name()
    {
        // arrange
        $product = new Product('Manna');

        // act
        $result = $product->getName();  

        // assert
        $this->assertEquals('Manna', $result);  
    }
}

執行 phpunit

在命令視窗下, 切換到專案根目錄, 執行以下指令
phpunit tests/
若要看到紅燈/綠燈, 加上 --colors 即可
phpunit --colors tests/

下載 PHPUnit Starter 開始做測試吧!!

沒有留言: