摘要:另外一些單元測試可能會測試負向路徑的場景,保證代碼不僅會產生錯誤,而且是預期的錯誤。是一個面向程序員的測試框架,這是一個的體系結構的單元測試框架。
本系列教程所有的PHPUnit測試基于PHPUnit6.5.9版本,Lumen 5.5框架
前置日常我們的普通用到的測試:
代碼直接echo,debug等方法測試 -> 跟蹤細節斷點型測試
log日志輔助測試 -> 跟蹤細節斷點型測試
輔助工具,postman之類的做請求類測試->請求類測試
瀏覽器直接測試->瀏覽器測試
單元測試單元測試是針對程序的最小單元來進行正確性檢驗的測試工作,程序單元就是應用的最小可測試部件,一個單元可能是單個程序,類,對象,方法等
單元測試是用來測試包或者程序的一部分代碼或者一組代碼的函數。測試的目的是確認目標代碼在給定的場景下,有沒有按照期望工作。
一個場景是正向路經測試,就是在正常執行的情況下,保證代碼不產生錯誤的測試。這種測試可以用來確認代碼可以成功地向數據庫中插入一條工作記錄。
另外一些單元測試可能會測試負向路徑的場景,保證代碼不僅會產生錯誤,而且是預期的錯誤。
這種場景下的測試可能是對數據庫進行查詢時沒有找到任何結果,或者對數據庫做了無效的更新。
在這兩種情況下,測試都要驗證確實產生了錯誤,且產生的是預期的錯誤。總之,不管如何調用或者執行代碼,所寫的代碼行為都是可預期的
優點或改善解決問題
減少bug
通過運行單元測試可以直接測試各個功能的正確性,有bug可以直接發現并解決,如果要等到跟其他的功能對接,進行連貫測試,測試比較麻煩,而且bug不能及早的發現并解決
快速定位bug
如果是web項目的某一個功能,平常我們定位bug可能是頁面輸入值,后臺斷點,一步一步的需要bug位置,如果有編寫單元測試,則可以直接修改數據,運行單元測試即可,快速有限
提高代碼質量
如果每一個部件都是完美的,那么組合起來肯定也是完美的。整體代碼質量就得到了保障
減少調試時間
當不知問題所在的時候,可能需要各種調試與運行,而如果所有的都有編寫單元測試,那么可以直接運行單元測試,就能定位問題所在位置。PHPUnit
PHPUnit是一個面向PHP程序員的測試框架,這是一個xUnit的體系結構的單元測試框架。
版本主版本 | 初始版本 | PHP兼容性 | 支持 | 后臺框架對應版本 |
---|---|---|---|---|
PHPUnit 8 | 2019年2月1日 | PHP 7.2, PHP 7.3, PHP 7.4 | 在2021年2月5日結束支持 | |
PHPUnit 7 | 2018年2月2日 | PHP 7.1, PHP 7.2, PHP 7.3 | 在2020年2月7日結束支持 | |
PHPUnit 6 | 2017年2月3日 | PHP 7.0, PHP 7.1, PHP 7.2 | 在2019年2月1日結束支持 | * |
PHPUnit 5 | 2015年10月2日 | PHP 5.6, PHP 7.0, PHP 7.1 | 在2018年2月2日結束支持 | |
PHPUnit 4 | 2014年3月7日 | PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6 | 在2017年2月3日結束支持 |
tests ├── ExampleTest.php 測試用例 └── TestCase.php Lumen自帶測試基類,繼承PHPunit代碼
assertTrue(true); } /** * 測試斷言失敗 * * @return void */ public function testFailure() { $this->assertTrue(false); } /** * 測試不加斷言,risky. * * @return void */ public function testRisky() { } }運行
../vendor/bin/phpunit ExampleTest.php輸出
PHPUnit 6.5.9 by Sebastian Bergmann and contributors. .FR 3 / 3 (100%) Time: 902 ms, Memory: 10.00MB There was 1 failure: 1) ExampleTest::testFailure Failed asserting that false is true. /web/www/wpt/gt-api/tests/ExampleTest.php:22 -- There was 1 risky test: 1) ExampleTest::testRisky This test did not perform any assertions FAILURES! Tests: 3, Assertions: 2, Failures: 1, Risky: 1.說明
3個測試方法,2個斷言 一個斷言失敗,一個測試方法無斷言輸出標識說明
. 當測試成功時輸出。 F 當測試方法運行過程中一個斷言失敗時輸出。 E 當測試方法運行過程中產生一個錯誤時輸出。 R 當測試被標記為有風險時輸出。 S 當測試被跳過時輸出。 I 當測試被標記為不完整或未實現時輸出。參考
PHPUnit 6.5 官方文檔
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/8901.html
摘要:另外一些單元測試可能會測試負向路徑的場景,保證代碼不僅會產生錯誤,而且是預期的錯誤。是一個面向程序員的測試框架,這是一個的體系結構的單元測試框架。 本系列教程所有的PHPUnit測試基于PHPUnit6.5.9版本,Lumen 5.5框架 前置 日常我們的普通用到的測試: 代碼直接echo,debug等方法測試 -> 跟蹤細節斷點型測試 log日志輔助測試 -> 跟蹤細節斷點型測試 ...
摘要:本系列教程所有的測試基于版本,框架目錄結構模塊下的目錄是符合的模塊結構的如等是模塊目錄下的結構目錄如果有自己的目錄同級分配即可,如我這里的整體結構重寫過基類的測試基類,用于我們用這個基類做測試基類,后續會說明自動加載文件測試用例目錄某測試模 本系列教程所有的PHPUnit測試基于PHPUnit6.5.9版本,Lumen 5.5框架 目錄結構 模塊下的目錄是符合Lumen的模塊結構的如:...
摘要:另外,與模板方法將分別在測試用例類的第一個測試運行之前和測試用例類的最后一個測試運行之后調用。 本系列教程所有的PHPUnit測試基于PHPUnit6.5.9版本,Lumen 5.5框架 PHPUnit測試一個文件類的生命周期 showImg(https://segmentfault.com/img/bVbnXJj?w=1330&h=1186); 理解PHPUnit加載機制(Lumen...
摘要:另外,與模板方法將分別在測試用例類的第一個測試運行之前和測試用例類的最后一個測試運行之后調用。 本系列教程所有的PHPUnit測試基于PHPUnit6.5.9版本,Lumen 5.5框架 PHPUnit測試一個文件類的生命周期 showImg(https://segmentfault.com/img/bVbnXJj?w=1330&h=1186); 理解PHPUnit加載機制(Lumen...
摘要:是的單元測試框架。單元測試在軟件開發中越來越受到重視,測試先行編程極限編程和測試驅動開發在實踐中被廣泛。利用單元測試,也可以實現契約式設計。現在第二個測試也能通過啦你也可以使用契約式設計的風格,只需使用類提供的靜態斷言方法編寫契約條件。 PHPUnit是PHP的單元測試框架。單元測試在軟件開發中越來越受到重視,測試先行編程、極限編程和測試驅動開發在實踐中被廣泛。利用單元測試,也可以實現...
閱讀 1938·2021-11-24 09:39
閱讀 3277·2021-09-22 14:58
閱讀 1161·2019-08-30 15:54
閱讀 3315·2019-08-29 11:33
閱讀 1787·2019-08-26 13:54
閱讀 1598·2019-08-26 13:35
閱讀 2468·2019-08-23 18:14
閱讀 762·2019-08-23 17:04