真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHPUnit在PHP項(xiàng)目中如何使用

本文小編為大家詳細(xì)介紹“PHPUnit在PHP項(xiàng)目中如何使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“PHPUnit在PHP項(xiàng)目中如何使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

成都創(chuàng)新互聯(lián)從2013年成立,先為濱江等服務(wù)建站,濱江等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為濱江企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

單元測(cè)試介紹

單元測(cè)試是分別對(duì)程序的單元(方法, 函數(shù))進(jìn)行測(cè)試,判斷執(zhí)行結(jié)果是否符合預(yù)期

單元測(cè)試能協(xié)助開發(fā)者什么?

1.確保單元的執(zhí)行結(jié)果

2.盡早發(fā)現(xiàn)程序中的錯(cuò)誤

3.修改程序, 更加有信心

PHPUnit

PHPUnit 是 PHP 程式語言中最常見的單元測(cè)試 (unit testing) 框架,PHPUnit 是參考 xUnit 架構(gòu)利用 PHP 實(shí)作出來。

安裝PHPUnit

# 項(xiàng)目中安裝
$ composer require --dev phpunit/phpunit

# 下載到本地
$ wget https://phar.phpunit.de/phpunit-9.phar

使用項(xiàng)目中安裝可以在項(xiàng)目中直接運(yùn)行, 無需太多配置, 將 phar 下載到非項(xiàng)目文件夾, 可以減少項(xiàng)目代碼的體積, 我一般采用下載到本地, 然后多個(gè)項(xiàng)目公用一個(gè) phpunit.phar, 減少項(xiàng)目體積, 不過需要在 IDE中增加更多配置

配置autoload

添加下面的代碼到composer.json PackageName是項(xiàng)目的名稱,src是包含PHP class文件的文件夾地址,項(xiàng)目根目錄下的子文件夾。

...
    "autoload": {
       "psr-4": {
            "PackageName\\": "src/",
            "PackageName\\Tests": "tests/"
        }
     },
...

設(shè)置PHPUnit

在phpstorm中 Languages & Frameworks >PHP >Test Frameworks 根據(jù)不同的加載方式設(shè)置不同的配置

PHPUnit在PHP項(xiàng)目中如何使用

如果是項(xiàng)目額外加載, 則需要把 phpunit 所在的文件夾作為 library 加入項(xiàng)目, 便于代碼提示 Preferences | Languages & Frameworks | PHP , 加入 phpunit 文件夾

PHPUnit在PHP項(xiàng)目中如何使用

編寫PHPUnit測(cè)試

  • 針對(duì)類 Example 的測(cè)試寫在類 ExampleTest 中, ExampleTest 繼承自 TestCase

  • 對(duì)于方法的測(cè)試命名為 test* 的公用方法

  • 在測(cè)試方法內(nèi),類似于 assertEquals() 的斷言方法用來對(duì)實(shí)際值和預(yù)期值的匹配做出驗(yàn)證

ArrayTest  用 PHPUnit 測(cè)試數(shù)組操作

assertCount(0, $stack);

        $stack[] = 'foo';
        $this->assertEquals('foo', $stack[count($stack) - 1]);
        $this->assertCount(1, $stack);

        $this->assertEquals('foo', array_pop($stack));
        $this->assertCount(0, $stack);
    }
}

在 IDE 中運(yùn)行

  • 點(diǎn)擊方法名稱

  • 右鍵測(cè)試類

  • 右鍵測(cè)試文件夾

PHPUnit在PHP項(xiàng)目中如何使用

PHPUnit 斷言

laravel 中除了標(biāo)準(zhǔn)的 PHPUnit 斷言(assertEquals(), assertContains(), assertInstanceOf(), …更多斷言請(qǐng)看https://phpunit.readthedocs.io/zh_CN/latest/assertions.html?highlight=assertTrue#)之外, 還存在很多允許測(cè)試 web 應(yīng)用的檢測(cè)項(xiàng)目

assertPageLoaded($uri, $message = null)

檢測(cè)最近的頁面是否被加載, 如果不存在 url / message 時(shí)候會(huì)報(bào)錯(cuò)

assertResponseOk()

是否頁面相應(yīng)OK

assertReponseStatus($code)

是否響應(yīng)指定的code

assertViewHas($key, $value = null)

視圖中是否存在指定的數(shù)據(jù)

assertViewHasAll($bindings)

視圖中是否存在指定的一系列數(shù)據(jù)

assertViewMissing($key)

指定視圖中是否不存在這個(gè)數(shù)據(jù)

assertRedirectedTo($uri, $with = [])

檢測(cè)是否重定向到指定的uri

assertRedirectedToRoute($name, $parameters = [], $with = [])

是否客戶端重定向到指定的路由

assertRedirectedToAction($name, $parameters = [], $with = [])

是否重定向到 action

assertSessionHas($key, $value = null)

session 中是否存在 key/ value

assertSessionHasAll($bindings)

session 中是否存在指定的 kv

assertSessionHasErrors($bindings = [])

session 是否存在錯(cuò)誤

assertHasOldInput()

session 中是否存在以前的數(shù)據(jù)

示例 xml 文件

phpunit.xml at 9.x · laravel



    
        
            ./tests/Unit
        
        
            ./tests/Feature
        
    
    
        
            ./app
        
    
    
        
        
        
        
        
        
        
        
        
    

Php 的單元覆蓋率

安裝 xdebug / Phpunit

# 安裝 xdebug
$ pecl install xdebug

啟用 xdebug

# php.ini 文件
xdebug.mode = coverage

PHPUnit在PHP項(xiàng)目中如何使用

PHPUnit在PHP項(xiàng)目中如何使用

讀到這里,這篇“PHPUnit在PHP項(xiàng)目中如何使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站名稱:PHPUnit在PHP項(xiàng)目中如何使用
當(dāng)前地址:http://weahome.cn/article/ieipoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部