PHP單元測(cè)試?yán)?PHPUNIT深入用法(二)第1/2頁(yè)
在phpunit中,有兩個(gè)有用的方法markTestSkipped和markTestIncomplete。它們能允許你編寫(xiě)的單元測(cè)試中不單是只有通過(guò)和失敗兩種結(jié)果。markTestSkipped能讓PHPUNIT不去執(zhí)行某個(gè)已經(jīng)編寫(xiě)好的測(cè)試方法。舉個(gè)例子說(shuō)明,比如下面的程序:
<?php
public function testThisMightHaveADb()
{
$myObject->createObject();
try {
$db = new Database();
$this->assertTrue($db->rowExists());
} catch (DatabseException $e) {
$this->markTestSkipped('This test was skipped because there was a database problem');
}
}
?>在上面的程序中,是一個(gè)連接數(shù)據(jù)庫(kù)后,判斷數(shù)據(jù)是否存在的測(cè)試方法,但如果考慮數(shù)據(jù)庫(kù)的連接異常的話(huà),則應(yīng)該在拋出異常時(shí),使用markTestSkipped指出該測(cè)試方法應(yīng)該是被忽略的,因?yàn)槌霈F(xiàn)了異常,而注意的時(shí),此時(shí)有可能你寫(xiě)的代碼是正確的,只不過(guò)是出現(xiàn)了異常而已,這樣phpunit在輸出時(shí)就不會(huì)只是簡(jiǎn)單的輸出fail。
而markTestIncomplete也有點(diǎn)類(lèi)似,但有點(diǎn)不同的是,它是當(dāng)開(kāi)發(fā)者在編寫(xiě)一個(gè)未完成的測(cè)試方法時(shí)使用的,標(biāo)記出某個(gè)測(cè)試方法還沒(méi)編寫(xiě)完成,同樣測(cè)試結(jié)果也不會(huì)是fail,只是告訴phpunit這個(gè)測(cè)試方法還沒(méi)編寫(xiě)完成而已,例子如下:
<?php
public function testAreNotEnoughHours()
{
$this->markTestIncomplete("There aren't enough hours in the day to have my tests go green");
$trueVariable = true;
$this->assertTrue($trueVariable);
}
?>2、更深入了解phpunit中的斷言
在上一篇文章中,已經(jīng)基本講解了一些基本的phpunit中的斷言的使用,這里以一個(gè)例子,下面是一個(gè)類(lèi)的代碼:
<?php
class Testable
{
public $trueProperty = true;
public $resetMe = true;
public $testArray = array(
'first key' => 1,
'second key' => 2
);
private $testString = "I do love me some strings";
public function __construct()
{
}
public function addValues($valueOne,$valueTwo) {
return $valueOne+$valueTwo;
}
public function getTestString()
{
return $this->testString;
}
}
?>我們編寫(xiě)的單元測(cè)試代碼初步的框架如下:
<?php
class TestableTest extends PHPUnit_Framework_TestCase
{
private $_testable = null;
public function setUp()
{
$this->_testable = new Testable();
}
public function tearDown()
{
$this->_testable = null;
}
/** test methods will go here */
}
?>在上一篇文章中,已經(jīng)介紹了setUp方法和tearDown方法,這里的setUp方法中,建立了Testable()實(shí)例并保存在變量$_testable中,而在tearDown方法中,銷(xiāo)毀了該對(duì)象。
接下來(lái),開(kāi)始編寫(xiě)一些斷言去測(cè)試,首先看assertTrue和assertFalase:
<?php
public function testTruePropertyIsTrue()
{
$this->assertTrue($this->_testable->trueProperty,"trueProperty isn't true");
}
public function testTruePropertyIsFalse()
{
$this->assertFalse($this->_testable->trueProperty, "trueProperty isn't false");
}
?>- Windows下安裝PHP單元測(cè)試環(huán)境PHPUnit圖文教程
- PHP單元測(cè)試?yán)?PHPUNIT深入用法(三)
- PHP單元測(cè)試?yán)?PHPUNIT初探
- PHP單元測(cè)試PHPUnit簡(jiǎn)單用法示例
- PHP單元測(cè)試框架PHPUnit用法詳解
- 使用PHPUnit進(jìn)行單元測(cè)試并生成代碼覆蓋率報(bào)告的方法
- php單元測(cè)試phpunit入門(mén)實(shí)例教程
- PHP使用phpunit進(jìn)行單元測(cè)試示例
- PHPUnit + Laravel單元測(cè)試常用技能
- Windows下wamp php單元測(cè)試工具PHPUnit安裝及生成日志文件配置方法
- laravel單元測(cè)試之phpUnit中old()函數(shù)報(bào)錯(cuò)解決
- PHPUnit 單元測(cè)試安裝與使用入門(mén)教程
相關(guān)文章
php使用array_rand()函數(shù)從數(shù)組中隨機(jī)選擇一個(gè)或多個(gè)元素
這篇文章主要介紹了php使用array_rand()函數(shù)從數(shù)組中隨機(jī)選擇一個(gè)或多個(gè)元素,需要的朋友可以參考下2014-04-04
PHP圖片處理之使用imagecopyresampled函數(shù)實(shí)現(xiàn)圖片縮放例子
這篇文章主要介紹了PHP圖片處理之使用imagecopyresampled函數(shù)實(shí)現(xiàn)圖片縮放例子,本文先是講解了imagecopyresampled函數(shù)的相關(guān)知識(shí),然后給出了實(shí)現(xiàn)代碼例子,需要的朋友可以參考下2014-11-11
PHP實(shí)現(xiàn)壓縮圖片尺寸并轉(zhuǎn)為jpg格式的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)壓縮圖片尺寸并轉(zhuǎn)為jpg格式的方法,涉及php針對(duì)圖片的讀取、計(jì)算、轉(zhuǎn)換、輸出等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05
PHP數(shù)據(jù)庫(kù)編程之MySQL優(yōu)化策略概述
這篇文章主要介紹了PHP數(shù)據(jù)庫(kù)編程之MySQL優(yōu)化策略,簡(jiǎn)單講述了mysql優(yōu)化的簡(jiǎn)單技巧以及索引優(yōu)化、查詢(xún)優(yōu)化、存儲(chǔ)優(yōu)化等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
PHP操作MySQL的mysql_fetch_* 函數(shù)的常見(jiàn)用法教程
這篇文章主要介紹了PHP中操作MySQL的mysql_fetch函數(shù)的常見(jiàn)用法教程,文中提到了其下fetch_array和mysql_fetch_row以及mysql_fetch_object函數(shù)的使用,需要的朋友可以參考下2015-12-12
PHP中批量生成靜態(tài)html(命令行下運(yùn)行PHP)
這篇文章主要介紹了如何通過(guò)命令行下運(yùn)行PHP命令,減少web請(qǐng)求,讓網(wǎng)站運(yùn)行的更穩(wěn)定,生成速度也更快2014-04-04

