亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ThinkPHP5與單元測(cè)試PHPUnit使用詳解

 更新時(shí)間:2020年02月23日 11:37:17   作者:Srodong  
這篇文章主要介紹了ThinkPHP5與單元測(cè)試PHPUnit使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

thinkphp5.0 是 tp 發(fā)展路線第一個(gè)支持 composer 的。tp 有自己的載入機(jī)制,composer 也有自己的載入機(jī)制。

官方提供了 think-testing 組件可以通過(guò) composer require topthink/think-testing 1.* 安裝,但我對(duì)這個(gè)測(cè)試組件不是很滿意,原因是它每個(gè)測(cè)試都是模擬成 http 請(qǐng)求。這也就意味著對(duì)于一些特定函數(shù),還得封裝到控制器中或者路由,該控制器還得控制它生產(chǎn)環(huán)境不能對(duì)外開(kāi)放。thinkphp5.0 是 tp 發(fā)展路線第一個(gè)支持 composer 的。tp 有自己的載入機(jī)制,composer 也有自己的載入機(jī)制。

PHPUnit 是一個(gè)用PHP編程語(yǔ)言開(kāi)發(fā)的開(kāi)源軟件,是一個(gè)單元測(cè)試框架。PHPUnit由Sebastian Bergmann創(chuàng)建,源于Kent Beck的SUnit,是xUnit家族的框架之一。

單元測(cè)試是對(duì)單獨(dú)的代碼對(duì)象進(jìn)行測(cè)試的過(guò)程,比如對(duì)函數(shù)、類、方法進(jìn)行測(cè)試。單元測(cè)試可以使用任意一段已經(jīng)寫好的測(cè)試代碼,也可以使用一些已經(jīng)存在的測(cè)試框架,比如JUnit、PHPUnit或者Cantata++,單元測(cè)試框架提供了一系列共同、有用的功能來(lái)幫助人們編寫自動(dòng)化的檢測(cè)單元,例如檢查一個(gè)實(shí)際的值是否符合我們期望的值的斷言。單元測(cè)試框架經(jīng)常會(huì)包含每個(gè)測(cè)試的報(bào)告,以及給出你已經(jīng)覆蓋到的代碼覆蓋率。

總之一句話,使用 phpunit 進(jìn)行自動(dòng)測(cè)試,會(huì)使你的代碼更健壯,減少后期維護(hù)的成本,也是一種比較標(biāo)準(zhǔn)的規(guī)范,現(xiàn)如今流行的PHP框架都帶了單元測(cè)試,如Laraval,Symfony,Yii2等,單元測(cè)試已經(jīng)成了標(biāo)配。

另外,單元測(cè)試用例是通過(guò)命令操控測(cè)試腳本的,而不是通過(guò)瀏覽器訪問(wèn)URL的。

項(xiàng)目?jī)?nèi)安裝PHPUnit

使用 composer 方式安裝 PHPUnit 項(xiàng)目根目錄下執(zhí)行下面這段代碼

composer require phpunit/phpunit 

自動(dòng)下載適配版本  我下載的時(shí)4.8.36

將 F:\wamp\wamp\www\tp5\vendor\bin 添加加到 PATH 環(huán)境變量中(這樣PHPunit全局生效)

PHPUnit簡(jiǎn)單用法

1、單個(gè)文件測(cè)試

根目錄下創(chuàng)建目錄tests

新建文件 FirstTest.php,編輯如下: 

<?php
/**
 * 1、引入autoload.php文件
 * 2、測(cè)試案例
 *
 *
 */
namespace App\tests;
require_once __DIR__ . '/../vendor/autoload.php';
 
 
use PHPUnit\Framework\TestCase;
 
 
class FirstTest extends TestCase
{
  public function testTure()
  {
    $stack = [];
    $this->assertEquals(0, count($stack));
  }
}

代碼解釋:

FirstTest為測(cè)試類FirstTest繼承于 PHPUnit\Framework\TestCase測(cè)試方法testTure(),測(cè)試方法必須為public權(quán)限,一般以test開(kāi)頭,或者你也可以選擇給其加注釋@test來(lái)表在測(cè)試方法內(nèi),類似于 assertEquals() 這樣的斷言方法用來(lái)對(duì)實(shí)際值與預(yù)期值的匹配做出來(lái)以此判斷方法是否正確

命令行執(zhí)行:
tests目錄下 執(zhí)行  >phpunit FirstTest     命令 測(cè)試文件命名

測(cè)試項(xiàng)目?jī)?nèi)方法 

tp5項(xiàng)目下的控制器在  F:\wamp\wamp\www\tp5\application\index\controller 文件夾下 寫一個(gè)簡(jiǎn)單的方法

在tests內(nèi)寫一個(gè)IndexTest.php

<?php
 
namespace App\tests;
require_once __DIR__ . '/../vendor/autoload.php';
 
use PHPUnit\Framework\TestCase;
use app\index\controller\Index;
 
 
class IndexTest extends TestCase
{
  public function testSum()
  {
    $obj = new Index;
    $this->assertEquals(6, $obj->index(2,3));
 
  }
 
}

執(zhí)行后的結(jié)果  成功!

如果我在index.php,和IndexTest.php都故意寫錯(cuò) 

返回結(jié)果  會(huì)有錯(cuò)誤位置

其他用法

其他用法請(qǐng)參考官網(wǎng):PHPUnit中國(guó)官網(wǎng) 

相關(guān)文章

  • Yii2框架制作RESTful風(fēng)格的API快速入門教程

    Yii2框架制作RESTful風(fēng)格的API快速入門教程

    Yii提供了一整套用來(lái)簡(jiǎn)化實(shí)現(xiàn)RESTful風(fēng)格的WebService服務(wù)的API。這篇文章主要介紹了Yii2框架制作RESTful風(fēng)格的API快速入門教程的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 初識(shí)PHP中的Swoole

    初識(shí)PHP中的Swoole

    Swoole是一種PHP高級(jí)Web開(kāi)發(fā)框架,框架不是為了提升網(wǎng)站的性能,是為了提升網(wǎng)站的開(kāi)發(fā)效率。最少的性能損耗,換取最大的開(kāi)發(fā)效率
    2016-04-04
  • Yii2.0框架模型多表關(guān)聯(lián)查詢示例

    Yii2.0框架模型多表關(guān)聯(lián)查詢示例

    這篇文章主要介紹了Yii2.0框架模型多表關(guān)聯(lián)查詢,結(jié)合實(shí)例形式總結(jié)分析了Yii2.0框架多表關(guān)聯(lián)查詢相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • PHP實(shí)現(xiàn)多條件查詢實(shí)例代碼

    PHP實(shí)現(xiàn)多條件查詢實(shí)例代碼

    在我們的網(wǎng)站設(shè)計(jì)過(guò)程中,經(jīng)常會(huì)用到多條件查詢,本文的源碼是一個(gè)二手房屋查詢的例子。在本例中,我們要實(shí)現(xiàn)能夠通過(guò)地理位置,物業(yè)類型,房屋價(jià)格,房屋面積及信息發(fā)布日期等多個(gè)條件查詢到客戶所需的資料。
    2010-07-07
  • 給大家分享幾個(gè)常用的PHP函數(shù)

    給大家分享幾個(gè)常用的PHP函數(shù)

    本文給大家分享的是pink自己寫的幾個(gè)常用的PHP函數(shù),包括截取字符串,CURL封裝以及分類樹(shù)函數(shù),有需要的小伙伴可以參考下
    2017-01-01
  • PHP微信刮刮卡 附微信接口

    PHP微信刮刮卡 附微信接口

    像微信大轉(zhuǎn)盤、刮刮卡這樣的抽獎(jiǎng),最重要最核心的就是如何設(shè)置中獎(jiǎng)的概率。本文綜合了網(wǎng)上多個(gè)微信大轉(zhuǎn)盤、刮刮卡的代碼
    2016-07-07
  • ThinkPHP6通過(guò)Ucenter實(shí)現(xiàn)注冊(cè)登錄的示例代碼

    ThinkPHP6通過(guò)Ucenter實(shí)現(xiàn)注冊(cè)登錄的示例代碼

    這篇文章主要介紹了ThinkPHP6通過(guò)Ucenter實(shí)現(xiàn)注冊(cè)登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • php通過(guò)curl模擬登陸DZ論壇

    php通過(guò)curl模擬登陸DZ論壇

    本文章來(lái)給各位同學(xué)介紹一下關(guān)于Php CURL模擬登陸論壇并采集數(shù)據(jù)實(shí)例,如果你對(duì)利用curl模擬登錄功能有興趣可進(jìn)入?yún)⒖肌?/div> 2015-05-05
  • Codeigniter框架實(shí)現(xiàn)獲取分頁(yè)數(shù)據(jù)和總條數(shù)的方法

    Codeigniter框架實(shí)現(xiàn)獲取分頁(yè)數(shù)據(jù)和總條數(shù)的方法

    這篇文章主要介紹了Codeigniter框架實(shí)現(xiàn)獲取分頁(yè)數(shù)據(jù)和總條數(shù)的方法,實(shí)現(xiàn)了對(duì)獲取當(dāng)前頁(yè)的數(shù)據(jù)和總條數(shù)方法的封裝,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • PHP中子類重載父類的方法【parent::方法名】

    PHP中子類重載父類的方法【parent::方法名】

    這篇文章主要介紹了PHP中子類重載父類的方法【parent::方法名】的相關(guān)內(nèi)容,小編本文講述的還不錯(cuò),所有分享給大家,供大家參考
    2016-05-05

最新評(píng)論