激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - ThinkPHP5與單元測試PHPUnit使用詳解

ThinkPHP5與單元測試PHPUnit使用詳解

2020-06-14 14:37Srodong PHP教程

這篇文章主要介紹了ThinkPHP5與單元測試PHPUnit使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

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

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

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

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

另外,單元測試用例是通過命令操控測試腳本的,而不是通過瀏覽器訪問URL的。

項目內(nèi)安裝PHPUnit

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

?
1
composer require phpunit/phpunit

自動下載適配版本  我下載的時4.8.36

ThinkPHP5與單元測試PHPUnit使用詳解

ThinkPHP5與單元測試PHPUnit使用詳解

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

ThinkPHP5與單元測試PHPUnit使用詳解

PHPUnit簡單用法

1、單個文件測試

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

ThinkPHP5與單元測試PHPUnit使用詳解

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
/**
 * 1、引入autoload.php文件
 * 2、測試案例
 *
 *
 */
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為測試類FirstTest繼承于 PHPUnit\Framework\TestCase測試方法testTure(),測試方法必須為public權(quán)限,一般以test開頭,或者你也可以選擇給其加注釋@test來表在測試方法內(nèi),類似于 assertEquals() 這樣的斷言方法用來對實際值與預(yù)期值的匹配做出來以此判斷方法是否正確

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

ThinkPHP5與單元測試PHPUnit使用詳解

測試項目內(nèi)方法 

tp5項目下的控制器在  F:\wamp\wamp\www\tp5\application\index\controller 文件夾下 寫一個簡單的方法

ThinkPHP5與單元測試PHPUnit使用詳解

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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é)果  成功!

ThinkPHP5與單元測試PHPUnit使用詳解

如果我在index.php,和IndexTest.php都故意寫錯 

ThinkPHP5與單元測試PHPUnit使用詳解

ThinkPHP5與單元測試PHPUnit使用詳解

返回結(jié)果  會有錯誤位置

ThinkPHP5與單元測試PHPUnit使用詳解

其他用法

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

原文鏈接:https://blog.csdn.net/Srodong/article/details/88640325

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲综合一区二区 | 欧美黄色一级带 | av手机在线电影 | 国产成人羞羞视频在线 | 国产精品99精品 | 久久久久999| 欧美日韩国产综合网 | 国产91极品 | 好吊色欧美一区二区三区四区 | 国产一区二区二 | 色妹子久久 | 国产精品一区二av18款 | 精品久久9999 | 亚洲热线99精品视频 | 天天草天天干天天 | 狠狠操精品视频 | 视频一区二区三区视频 | 久久久久久久久久久久久久av | 小雪奶水翁胀公吸小说最新章节 | 日韩精品一区二区免费视频 | 国产精品欧美日韩一区二区 | 天堂精品久久 | 精品中文字幕久久久久四十五十骆 | 亚洲国产精品久久久久久久 | 色综合久久99 | 宅男噜噜噜66国产免费观看 | 福利在线免费视频 | 国产成人精品免高潮在线观看 | 一级电影在线观看 | 国产一区二区三区在线视频 | 日本免费不卡一区二区 | 久久久久成人精品亚洲国产 | 成人一级在线 | 亚洲一区二区三区视频免费 | 久草在线观看福利 | 日韩精品一区不卡 | 国产亚洲精品一区二区三区 | 国产精品久久久久久久亚洲按摩 | 免费a视频| 国产99页 | 二区三区在线观看 |