亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > PHPUnit
利用PHPUnit單元測試對PHP代碼進(jìn)行檢查
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/1/2 13:13:06 ] 推薦標(biāo)簽:PHPUnit 代碼 檢查

清單 3. 測試失敗

% phpunit TestAdd.php
PHPUnit 2.2.1 by Sebastian Bergmann.

FF

Time: 0.0031270980834961
There were 2 failures:
1) test1(TestAdd)

2) test2(TestAdd)


FAILURES!!!
Tests run: 2, Failures: 2, Errors: 0, Incomplete Tests: 0.

現(xiàn)在我知道這兩個(gè)測試都可以正常工作了。因此,可以修改add()函數(shù)來真正地做實(shí)際的事情了。

<?php
function add( $a, $b ) { return $a+$b; }
?>

現(xiàn)在這兩個(gè)測試都可以通過了。

清單 4. 測試通過

% phpunit TestAdd.php
PHPUnit 2.2.1 by Sebastian Bergmann.

..

Time: 0.0023679733276367

OK (2 tests)
%

    盡管這個(gè)測試驅(qū)動開發(fā)的例子非常簡單,但是我們可以從中體會到它的思想。我們首先創(chuàng)建了測試用例,并且有足夠多的代碼讓這個(gè)測試運(yùn)行起來,不過結(jié)果是錯(cuò)誤的。然后我們驗(yàn)證測試的確是失敗的,接著實(shí)現(xiàn)了實(shí)際的代碼使這個(gè)測試能夠通過。

    我發(fā)現(xiàn)在實(shí)現(xiàn)代碼時(shí)我會一直不斷地添加代碼,直到擁有一個(gè)覆蓋所有代碼路徑的完整測試為止。在本文的后,您會看到有關(guān)編寫什么測試和如何編寫這些測試的一些建議。

數(shù)據(jù)庫測試

    在進(jìn)行模塊測試之后,可以進(jìn)行數(shù)據(jù)庫訪問測試了。數(shù)據(jù)庫訪問測試帶來了兩個(gè)有趣的問題。首先,我們必須在每次測試之前將數(shù)據(jù)庫恢復(fù)到某個(gè)已知點(diǎn)。其次,要注意這種恢復(fù)可能會對現(xiàn)有數(shù)據(jù)庫造成破壞,因此我們必須對非生產(chǎn)數(shù)據(jù)庫進(jìn)行測試,或者在編寫測試用例時(shí)注意不能影響現(xiàn)有數(shù)據(jù)庫的內(nèi)容。

數(shù)據(jù)庫的單元測試是從數(shù)據(jù)庫開始的。為了闡述這個(gè)問題,我們需要使用下面的簡單模式。


清單 5. Schema.sql

DROP TABLE IF EXISTS authors;
CREATE TABLE authors (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name TEXT NOT NULL,
PRIMARY KEY ( id )
);

清單 5 是一個(gè) authors 表,每條記錄都有一個(gè)相關(guān)的 ID。

接下來,可以編寫測試用例了。


清單 6. TestAuthors.php

<?php
require_once 'dblib.php';
require_once 'PHPUnit2/Framework/TestCase.php';

class TestAuthors extends PHPUnit2_Framework_TestCase
{
function test_delete_all() {
$this->assertTrue( Authors::delete_all() );
}
function test_insert() {
$this->assertTrue( Authors::delete_all() );
$this->assertTrue( Authors::insert( 'Jack' ) );
}
function test_insert_and_get() {
$this->assertTrue( Authors::delete_all() );
$this->assertTrue( Authors::insert( 'Jack' ) );
$this->assertTrue( Authors::insert( 'Joe' ) );
$found = Authors::get_all();
$this->assertTrue( $found != null );
$this->assertTrue( count( $found ) == 2 );
}
}
?>

上一頁123456下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 最近最新好看的中文字幕2019 | 欧美在线播放视频 | 日韩精品手机在线 | 精品一区二区视频 | 欧美性猛交ⅹxxx乱大交按摩 | 免费黄色大片 | 国内外一级毛片 | 国产精品亚洲国产三区 | 欧美三级香港三级日本三级 | 欧美精品一区二区三区免费播放 | 日韩美女一区二区三区 | 精品国产亚一区二区三区 | 免费成人在线网站 | 国产综合在线观看视频 | 香港三级日本三级人妇三级四 | 在线观看久草 | 成人久久18免费游戏网站 | 欧美激情一区二区三区 | 免费播放国产性色生活片 | 夜夜爱成人免费网站 | 91短视频黄 | 日韩大片观看网址 | 男无遮挡吃奶gift动态图 | 大片毛片女女女女女女女 | 涩婷婷| yy午夜私人影院免费 | 五月香婷婷 | 亚洲综合九九 | 中文字幕一区在线观看视频 | 狠狠操天天| 综合自拍亚洲综合图不卡区 | 美女国内精品自产拍在线播放 | 天堂中文在线乱码 | 欧美一级日韩一级 | 日韩欧美国产高清 | 国产成人永久免费视 | 老司机av磁力 | 日本成人午夜 | 午夜在线视频免费 | 日韩毛片网 | 久久综合九色综合狠狠97 |