單元測(cè)試可通過(guò) phpunit 輕松地對(duì) php 代碼庫(kù)進(jìn)行驗(yàn)證。通過(guò) composer 安裝 phpunit,在 tests 目錄中創(chuàng)建測(cè)試類(lèi),并編寫(xiě)以 test 開(kāi)頭的測(cè)試方法。每個(gè)測(cè)試方法應(yīng)使用 assertequals 等斷言函數(shù),并在運(yùn)行 vendor/bin/phpunit 命令后運(yùn)行測(cè)試。例如,對(duì)于 calculator 類(lèi)的 add() 方法,您可以編寫(xiě)一個(gè)測(cè)試以驗(yàn)證其是否正確相加。
使用 PHPUnit 進(jìn)行 PHP 單元測(cè)試
簡(jiǎn)介
單元測(cè)試是一種驗(yàn)證代碼中個(gè)別單元(例如類(lèi)、方法或函數(shù))是否按預(yù)期工作的方法。對(duì)于確保您的 PHP 代碼庫(kù)健壯且無(wú)錯(cuò)誤來(lái)說(shuō),單元測(cè)試至關(guān)重要。
安裝 PHPUnit
通過(guò) Composer 安裝 PHPUnit:
composer require --dev phpunit/phpunit
登錄后復(fù)制
創(chuàng)建測(cè)試類(lèi)
將在 tests 目錄下創(chuàng)建一個(gè)測(cè)試類(lèi):
<?php namespace Your\Namespace; use PHPUnit\Framework\TestCase; class YourTestClassTest extends TestCase { // ... }
登錄后復(fù)制
編寫(xiě)測(cè)試方法
每個(gè)測(cè)試方法都應(yīng)該以 test 開(kāi)頭。它們采用一個(gè)斷言函數(shù)作為參數(shù),例如 assertEquals 或 assertTrue。
public function test_your_method() { // 設(shè)置測(cè)試數(shù)據(jù)并調(diào)用被測(cè)方法。 $expected = 'expected value'; $actual = $yourObject->yourMethod(); $this->assertEquals($expected, $actual); }
登錄后復(fù)制
運(yùn)行測(cè)試
通過(guò)運(yùn)行以下命令運(yùn)行 PHPUnit 測(cè)試:
vendor/bin/phpunit
登錄后復(fù)制
實(shí)戰(zhàn)案例
假設(shè)您有一個(gè) Calculator 類(lèi),其中包含一個(gè) add() 方法,用于將兩個(gè)數(shù)字相加。您可以編寫(xiě)以下單元測(cè)試來(lái)驗(yàn)證 add() 方法的行為:
class CalculatorTest extends TestCase { public function test_add() { $calculator = new Calculator(); $sum = $calculator->add(1, 2); $this->assertEquals(3, $sum); } }
登錄后復(fù)制
通過(guò) PHPUnit 運(yùn)行此測(cè)試將驗(yàn)證 Calculator 的 add() 方法是否返回了預(yù)期結(jié)果。