php_os用法,PHP教程:PHPUnit学习笔记(二)PHPUnit基本用法
上篇日記中我介紹了phpunit的配置方法,今天就開始介紹如何用PHPUnit來編寫測試用例,下面我來引入一個測試PHP數組操作的測試用例,這個例子會給你展示PHPUnit常規的用法和測試用例編寫的步驟。當前目標主要是對PHPUnit的基本使用有一個大概的了解,類似開發程序教程中的Hello World程序,知道程序怎么寫,怎么去運行。
編寫一個棧測試的例子的步驟:
1. 定義一個測試類StackTest保存于StackTest.php中
2. 這個類繼承于PHPUnit_Framework_TestCase
3. 定義類中的測試方法,類的所有的測試用例方法需要用test開頭,當然,你也可以在使用@test注釋來定義一個名字不為test開頭的方法為測試方法
4. 在這些測試方法中,我們需要使用斷言方法(assertion methods)如assertEquals()來斷言實際傳入的參數和期待的參數的值相同來達到測試的目的.
下面我們來看代碼:
例子代碼中我使用斷言方法assertEquals來斷言我期待$stack相關的值
注意代碼中高亮的方法indexEquals,它并沒有使用test開頭,但是我在注釋中增加了@test標簽,那么phpunit依然會將其作為一個測試方法運行,下面我們來運行方法和運行結果
進入命令行,使用phpunit StackTest來執行StackTest.php的測試,運行結果如下:
.F 表示執行完畢且出現斷言失敗
Time: 0 seconds, Memory: 5.50Mb
表示執行時間為0秒,使用5.50MB內存
There was 1 failure:
這里有一個失敗
1) StackTest::indexEuqals
StackTest類的indexEquals方法
Failed asserting that <1> matches expected <2>.2>1>
斷言值為2但是傳入的值卻是1
/home/colt/workspace/PHP/test/StackTest.php:28
FAILURES!
Tests: 2, Assertions: 6, Failures: 1.
執行了2個測試,共6個斷言,失敗1
由于我們在indexEquals斷言$stack索引0的值為2,但是實際上值的是1,所以這個斷言沒有通過測試并向我們報告了失敗。
本例子通過一個簡單易懂的測試類解開測試的神秘面紗:
通俗的講,單元測試就是在測試用例類中,定義一系列的測試方法,在方法中使用斷言(assert)來測試你程序中的相關函數、類、接口、過程的執行結果是否和你預期的是一樣的,如果某個部分的執行結果沒有與你期待的結果相同,PHPUnit就會向你報告問題,你也可以方便的根據報告確認和修復程序中的Bug。針對你的程序寫好詳細的完整單元測試,你就不用每次完成一個新功能后逐個的測試你軟件的所有功能,而且在程序發布之前,你至少可以通過測試消滅大部分的內部邏輯Bug和缺陷。同樣,你在之后的維護開發中,如果在某個功能的修改中不小心改壞了與其相關連的其他模塊,那么先前完善的單元測試也會向你報告出相關的問題讓你及時發現和修復問題。
本篇筆記完結,下篇我將繼續介紹使用PHPUnit編寫測試用例的進階知識.
總結
以上是生活随笔為你收集整理的php_os用法,PHP教程:PHPUnit学习笔记(二)PHPUnit基本用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php sqlserver扩展,PHP-
- 下一篇: php读取文件和读取redis,PHP结