久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

PHPUnit袖珍指南之自動測試

瀏覽:118日期:2024-02-08 13:32:07

最好的程序員也會犯錯(cuò)誤。好程序員和差程序員的區(qū)別在于:好程序員能通過測試盡可能的發(fā)現(xiàn)錯(cuò)誤。你越快測試錯(cuò)誤,你就越快發(fā)現(xiàn)它們,發(fā)現(xiàn)和修正的成本就越低。這解釋了為什么只在軟件發(fā)布前才測試的做法為什么問題那么多。大多數(shù)錯(cuò)誤根本就沒有發(fā)現(xiàn)過,修正發(fā)現(xiàn)的錯(cuò)誤是那么的高,以至于你不得不根據(jù)優(yōu)先級來決定只修正那些錯(cuò)誤,因?yàn)槟愀揪统惺懿黄鹑啃拚馁M(fèi)用。

相比你正在使用的方法,采用PHPUnit進(jìn)行測試并不是一個(gè)全然不同的東西。它們只是方法不同。兩者之間的不同在于,檢查程序行為是否符合正確是通過一批可以自動測試的代碼片斷來進(jìn)行的。這些代碼片斷叫做單元測試。 在這一部分,我們先基于打印的測試代碼進(jìn)行自動測試。假設(shè)我們要測試PHP的內(nèi)建數(shù)組Array。需要測試之一是函數(shù)sizeof(),對任何新創(chuàng)建的數(shù)組,sizeof()函數(shù)應(yīng)該返回 0。當(dāng)我們加入一個(gè)新數(shù)組成員,sizeof()應(yīng)該返回1。例1顯示了我們想測試什么。

例1. 測試數(shù)組和sizeof()

<?php $fixture = Array( ); // $fixture應(yīng)該為空。

 $fixture[] = 'element'; // $fixture應(yīng)該包含一個(gè)數(shù)組成員。?>

最簡單的測試方法是在加入數(shù)組成員前后打印sizeof()的運(yùn)算結(jié)果,如果返回0和1,說明Array和sizeof()運(yùn)行正常。

例2. 采用打印語句測試Array和sizeof()

<?php $fixture = Array( ); print sizeof($fixture) . 'n';

 $fixture[] = 'element'; print sizeof($fixture) . 'n';?>01

現(xiàn)在,我們讓測試程序從需要手工解釋變?yōu)樽詣舆\(yùn)行。在例3中,我們比較了期望值和實(shí)際值,如果相等就打印ok。如果我們發(fā)現(xiàn)有的結(jié)果不是ok,我們就知道有問題了。

例3. 比較Array和sizeof()的期望值和實(shí)際值

<?php $fixture = Array( ); print sizeof($fixture) == 0 ? 'okn' : 'not okn';

 $fixture[] = 'element'; print sizeof($fixture) == 1 ? 'okn' : 'not okn';?>okok

我們現(xiàn)在引入一個(gè)新的要素,如果期望值和實(shí)際值不同,我們就拋出一個(gè)異常。這樣我們的輸出就更簡單了。如果測試成功,什么也不做,如果有一個(gè)未處理異常,我們知道有問題了。

例4.使用斷言函數(shù)來測試Array和sizeof()

<?php $fixture = Array( ); assertTrue(sizeof($fixture) = = 0);

 $fixture[] = 'element'; assertTrue(sizeof($fixture) = = 1);

 function assertTrue($condition) {if (!$condition) { throw new Exception('Assertion failed.');} }?>

現(xiàn)在測試完全自動化了。和我們第一個(gè)版本不同,這個(gè)版本使得測試完全自動化了。

使用自動測試的目的是盡可能少的犯錯(cuò)誤。盡管你的代碼還不是完美的,用優(yōu)良的自動測試,你會發(fā)現(xiàn)錯(cuò)誤會明顯減少。自動測試給了你對代碼公正的信心。有這個(gè)信心,你可以在設(shè)計(jì)上有大膽的飛越,和你的團(tuán)隊(duì)伙伴關(guān)系更好,改善你和客戶之間的關(guān)系,每天安心入睡,因?yàn)槟憧梢宰C明由于你的努力,系統(tǒng)變得更好了。

標(biāo)簽: PHP
主站蜘蛛池模板: 欧美日韩亚洲视频 | h视频在线免费观看 | 96自拍视频 | 国产一区| 欧美激情一区二区三区蜜桃视频 | 久久久久久毛片免费播放 | 嫩草视频在线播放 | 夜夜超碰| 欧美一区二区大片 | 国产免费一区二区 | 欧美精品国产精品 | 精品国产乱码久久久久久闺蜜 | 亚洲国产综合在线 | 欧美久久综合 | 亚洲国产婷婷香蕉久久久久久99 | 久久成人毛片 | av在线入口 | 欧美精品综合 | 久久久精品免费观看 | 欧美日韩精品一区二区在线播放 | 欧美成人免费网站 | 太平公主一级艳史播放高清 | 青青草人人 | 日本精品免费在线观看 | 在线激情视频 | 成人免费小视频 | 欧美日韩视频在线 | 国产精品精品视频一区二区三区 | 久久精品亚洲一区二区 | 老司机深夜福利在线观看 | 一区二区日韩视频 | 国产精品美女久久久久久免费 | 91 在线| 黄色一级免费电影 | 日韩日日夜夜 | 黄色大片观看 | 国产亚洲精品久 | 国产精品久久久久久久久久 | 欧美日韩视频在线第一区 | 国产精品日韩 | www.一区|