PHP 单元测试工具 SimpleTest
對PHP開發者來說,單元測試這個名詞也許有些陌生,但是實際上我們卻常常在自發的進行著單元測試。
如果你總是一邊添加代碼一邊不斷地在 刷新著頁面,那么,單元測試早已融入了你的開發中。是的,單元測試其實就是通過盡可能早盡可能快的進行測試來把錯誤扼殺在搖籃中的,不過使用的,是自動化 的工具。根據TDD(測試驅動開發)的思想,我們在一個功能開始之前就可以創建它的測試代碼,然后通過不斷的測試、和添加功能來不斷的完善它,在這個過程 中,我們對需求和編碼的理解會變得更為深入。
PHP開發者的單元測試工具包
在PHP領域,單元測試的工具主要有 PHPUNIT,PHPUNIT2和SimpleTest三種。其中PHPUNIT在功能上很簡單,不算完善;PHPUNIT2是專門為PHP5寫的單元 測試工具,在結構和功能上都向Junit看齊;而SimpleTest則是一套非常實用的測試工具,其中的webTest支持對web程序界面的測試,是 Easy最為推薦的一款測試工具。在本文中,我們選擇SimpleTest進行介紹。
相關知識:PHPUNIT2也是一款很好的工具,尤其是架構上有很多值得圈點之處,希望將來能有機會在專門的文章中和大家分享。
SimpleTest:就是這么Simple
安裝SimpleTest很簡單,上sf.net上下載一個源碼包,然后解壓到web目錄下就可以使用了,這里就不多說。
下面我們先來看個例子:編寫一個測試,檢查一個網站是否可以訪問。
首先我們引入要用到的文件:
代碼列表:
require_once(?’../simpletest/unit_tester.php’?);
require_once(?’../simpletest/web_tester.php’?);
require_once(’../simpletest/reporter.php’);
然后我們創建一個測試類:
代碼列表:
class?TestOfSite?extends?WebTestCase
{
function?TestOfSite()
{
$this-〉WebTestCase(’測試’);
}
function?testSite()
{
$this-〉get(?’http://howgo.net/prettyface/display.php’?);
$this-〉assertTitle(’.:?漂亮臉蛋?:.’?);
}
}
首先我們擴展了webTestCase類,這樣我們就可以自動獲得測試web的能力,然后在構造函數中我們直接使用基類的,只是把標題傳給它。接著我們就該寫測試方法了,測試方法都是以‘test’開頭的,用以識別在我們運行測試的時候,類中哪些方法要進行調用。
而$this-〉get將取得網頁的內容,我們指定它的標題為“.:?漂亮臉蛋?:.”。接著我們要做的就是實例化這個類的對象,并運行它。
代碼列表:
$test?=?&new?TestOfSite();
$test-〉run(new?HtmlReporter());
下邊是運行結果:
如果測試出錯則會出現下邊的界面:
到這里一個簡單的測試就算完成了。
實戰演習?–?一個Login測試
下面我們進入實戰,在這個基礎上完成一個login的測試。這次我們先貼出完整的代碼:
代碼列表:
require_once(?’../simpletest/unit_tester.php’?);
require_once(?’../simpletest/web_tester.php’?);
require_once(’../simpletest/reporter.php’);
class?TestOfLogin?extends?WebTestCase
{
function?TestOfLogin()
{
$this-〉WebTestCase(’Login測試’);
}?
function?testLoginOk()
{
//?取得頁面
$this-〉get(?’http://howgo.net/prettyface/login.php’?);
//?添加測試表項
$this-〉setField(?’name’?,?’Easy’?);
$this-〉setField(?’pass’?,?’******’?);
//?提交
$this-〉clickSubmit(?’提交’?);
//?察看提交后返回頁面是否正確
$this-〉assertWantedPattern(?’/成功登錄/’?);
//?點擊頁面鏈接
$this-〉clickLink(?’點擊這里進入管理頁面’?);
//?察看指定頁面標題和關鍵內容
$this-〉assertTitle(’ADMINCP’?);
$this-〉assertWantedPattern(?’/請選擇要進行的任務/’?);
//?退出登陸
$this-〉clickLink(?’退出管理’?);
$this-〉clickLink
來源:http://www.cnblogs.com/linzhenjie/archive/2012/11/17/2774261.html
總結
以上是生活随笔為你收集整理的PHP 单元测试工具 SimpleTest的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全球通史(说一说全球通史的简介)
- 下一篇: Visio绘制时序图