ThinkPHP6 ?? ??? ???: ?? ?? ??
??:
????? ?? ?????? ?? ??? ???? ?? ??? ?????. ?? ???? ??? ???, ??? ? ???? ???? ???? ?????. ? ????? ?? ???? ?? ??? ????? ?? ThinkPHP6 ?????? ???? ?? ???? ???? ??? ?????.
1. ?? ???? ?????? ?? ???? ????? ???? ???? ??(?, ???? ??? ??? ?? ?? ??)? ???? ???? ? ???? ??? ?????. ?? ??? ??? ???, ???, ?? ??? ?? ?????. ??? ??? ???? ???? ??? ???? ??? ????? ??? ??? ???? ??? ???? ?????.
?? ???? ?? ??? ??? ? ????.
- ?? ??? ??? ???? ?? ???? ??? ???? ????.
- ??? ??? ??? ???? ???? ???? ?? ??? ????.
- ??? ?? ???? ???? ???? ? ???? ?????.
- ??? ?? ???? ???? ?? ?? ??? ? ?? ????.
- ??? ?? ??? ???? ???? ?? ???? ??????.
- PHPUnit ??
- PHPUnit? ??? ??? ?? ???? ??? ? ?? ?? ?? PHP ?? ??? ????????. ?? ????? PHPUnit? ???? Composer? ?? ???? ???.
composer.json
??? ?? ???? ?????. { "require-dev": { "phpunit/phpunit": "^8.5" } }
composer.json
文件中,添加如下依賴:composer update
然后,在項(xiàng)目根目錄下執(zhí)行以下命令,進(jìn)行PHPUnit的安裝:
php think make:test Example
- 創(chuàng)建測(cè)試用例
在ThinkPHP6框架中,測(cè)試用例一般位于tests
目錄下。我們可以使用如下命令創(chuàng)建一個(gè)新的測(cè)試用例類:
namespace tests; use AppApp; use PHPUnitFrameworkTestCase;
這將會(huì)在tests
目錄下自動(dòng)生成一個(gè)ExampleTest.php
文件,用于編寫測(cè)試代碼。
- 編寫測(cè)試代碼
下面我們以一個(gè)簡單的示例為例,來介紹如何編寫測(cè)試代碼。假設(shè)我們有一個(gè)App類,其中有一個(gè)add方法用于兩個(gè)數(shù)相加。我們希望編寫一個(gè)測(cè)試用例,驗(yàn)證add方法的正確性。
首先,在ExampleTest.php
文件中,我們需要引入需要測(cè)試的類和PHPUnit的相關(guān)庫:
class ExampleTest extends TestCase { public function testAdd() { $app = new App(); $this->assertEquals(3, $app->add(1, 2)); } }
然后,編寫測(cè)試用例代碼:
<phpunit bootstrap="vendor/autoload.php" colors="true" strict="true"> <testsuites> <testsuite name="Application Test Suite"> <directory>./tests</directory> </testsuite> </testsuites> </phpunit>
在上述代碼中,我們創(chuàng)建了一個(gè)App對(duì)象,并調(diào)用add方法進(jìn)行測(cè)試。使用assertEquals
斷言,判斷實(shí)際結(jié)果和期望結(jié)果是否相等。
四、運(yùn)行單元測(cè)試
- 配置測(cè)試環(huán)境
在進(jìn)行單元測(cè)試之前,我們需要確保測(cè)試環(huán)境的正確配置。修改項(xiàng)目根目錄下的phpunit.xml
?? ?? ???? ?? ?????? ?? ??? ???? PHPUnit? ?????. - ThinkPHP6 ??????? ??? ???? ?????
tests
????? ????. ?? ??? ???? ? ??? ??? ???? ??? ? ????.
rrreee
./vendor/bin/phpunit
- ??? ??? ???
tests
????? ExampleTest.php
??? ???? ?????.
- ??? ?? ??
??? ?? ?? ??? ?? ?? ??? ???????. ? ?? ??? ??? add ???? ?? App ???? ??? ??? ?????. ??? add ???? ???? ???? ?? ??? ???? ???? ????.
?? ExampleTest.php
???? ???? ???? PHPUnit? ?? ?????? ???? ???.
assertEquals
???? ?????. ????4. ?? ??? ?? ????????? ?? ?? ???? ???? ???? ?? ??? ??? ???? ?????? ???? ???. ???? ?? ?????? phpunit.xml
??? ???? ??? ????? ??????? ?????: ????rrreee?????? ??? ???????? ?? ?????? ?? ??? ???? ??? PHPUnit? ?????. ???: ????rrreee???? ?? ???? ??? ?? ??? ? ? ????. ????5. ?????? ???? ?? ??? ???? ? ???? ? ? ?? ? ?????. PHPUnit? ThinkPHP6 ?????? ??? ?? ?? ???? ?? ???? ??? ? ?? ??? ???? ???? ?????. ?? ??????? ?? ??? ???? ??? ???? ?? ?? ???? ????? ???? ???. ????? ?? ??? ?? ???? ThinkPHP6 ?? ???? ?? ??? ?? ??? ???? ??? ? ??? ??, ?? ???? ?? ??? ?? ???? ? ??? ????. ??? ??? ThinkPHP6 ?? ??? ???: ?? ?? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

PHP ?? ??? ?? ??: PHPUnit: ??? ????? ???? ???? ??? ???? ??? ??? ???? ?? ? ????. PHPUnitWrapper: ??? ????? ???? ???? ?? Lumen/Laravel? ????? ??? ??? ????? ?? ?? ?? ??? ???? ??? ???? ??? ???? ????.

?? ???? ??? ?? ??? ??????? ??? ???? ??, ?? ???? ?? ?? ??? ???? ?????. ?? ???? ?? ??? ??? ??? ??? ?? ??, ?? ???? ?? ?? ? ?? ?? ??? ??? ???. ?? ???? ?? ?? ? ????? ?? ??? ??????? ??, ?? ???? ?? ?? ? ?? ???? ?????. ?? ???? ??? ?? ?? ??? ???? ??????? ????? ???, ?? ???? ??? ?? ???? ???? ???? ????.

Golang ?? ????? ???? Gomega? ???? ?? Golang ?? ????? Gomega? ???? ??? ??? ?? ??? ? ??? ??? ??? ??? ???? ?? ?? ??? ??? ????????. Gomegagoget-ugithub.com/onsi/gomega ?? ???? Gomega ?? ??? ???? Gomega? ???? ? ?? ???? ????. 1. ?? ??? import "github.com/onsi/gomega" funcTest_MyFunction(t*testing.T){

??? ?? ???? ???? ?? ?? ? ?? ??? ???? Go ?? ????? ??? ?? ??? ??????. ???? ??? ?????. 1. ??? ??? ??? ???? ????? ?????. 2. ????? ???? ??? ?? ??? ?????. ?? ????? ???? ???? ???? ??? ?? ??? ????? ???? ?????, gotest? ???? ???? ????? ?? ??? ?????.

???, ???, ?? ??? ? ??? ????? ??? ???? ???? ?? ??? ???? ???? ?? ?????. ???? ???? ?? ??, ??? ???? ??, ??? ?? ? ??? ??? ??? ?????. ?? ????? max() ??? ?? ??? ?? ??? ???? ?? ??? ????? ??? ???? ?????. ??? ??? ??? ??? ?? ??? ???? ???? ? ????.

PHP ?? ????? ?? ?? ??? ???? ??: PHPUnit? --coverage-html ??? ???? ?? ?? ???? ?????. ??? ???? ??? ?????? setAccessible ???? ?????. ???? ???? ?? ??? ??????. ?? ?? ??? ???? ?? ?? ?? ??? ?? ???? ????.

??: PHPUnit ?? ??? ?????? CI/CD ?????? ???? PHP ?? ??? ???? ????? ??? ???? ? ????. PHPUnit? ???? ?? ?? ??? ???? ?? ??? ??? ??? ? ??? GitLabCI ? GitHubActions? ?? CI/CD ??? ??? ???? ???? ??? ? ????. ?: ??? ???? ?? ????? ???? ???? ??? ??? ???? ????? ?????.

Laravel? ThinkPHP? ?? ???? PHP ??? ???? ??? ?? ? ??? ??? ????. ? ??? ? ?? ??? ???? ??, ?? ? ?? ??? ???? ???? ?? ???? ??? ?? ??? ?? ? ??? ? ? ??? ?????.
