如題 ~~PHP測試很有必要,大家都是如何做的呢?
怎麼規範自己的測試及其測試應注意什嗎?
回複內容:
如題 ~~PHP測試很有必要,大家都是如何做的呢?
怎麼規範自己的測試及其測試應注意什嗎?
主要還是看架構是如何指導測試的。
codeigniter 用自己的寫的類庫進行簡單的斷言測試,測試結果直接輸出到頁面或者儲存到檔案。比較原始手工化。
Yii framework 用PHPUnit作為測試類別庫,另外還用了Selenium來類比正式操作環境測試具體瀏覽器下面的操作結果。(Selenium的使用是比較虐心的一件事,相當於用代碼類比使用者在瀏覽器上的每個操作後斷言預期的結果)
Laravel 同樣是採用PHPUnit作為測試類別庫,以測試後面商務邏輯為主,但是在針對前端的測試上主要是針對產生的Html頁面的內容來進行一些簡單的斷言。
我知道測試類別庫除了PHPUnit之外還有SimpleTest,不過沒有使用與瞭解過。
代碼測試覆蓋率達到80%左右應該也就差不多了,沒有追求100%的必要。畢竟,需求是動態。
單元測試能做,首先依賴於編寫的代碼,寫的隨意的代碼,是很難做單測的,所以,第一項工作就是要編寫可以測試的代碼,所以開發的時候就要考慮怎麼測試,如果能遵循測試驅動開發,敲碼前先寫單測,那更好;
第二項工作,就是單測的編寫了。往往打樁是比較麻煩的,但是越大的系統,依賴的外部組件和系統越多,不打樁根本無法測試。目前phpunit有支援打樁。
第三,如果是舊項目,代碼寫的隨意,缺少封裝,過程式的,甚至是麵包屑代碼,如何測試?我能想到的,要麼重構代碼,要麼就得做大量的打樁工作;即使如此,也不能保證真的就能對這些代碼進行單測。
以前我用thinkphp寫程式,然後想做一下單元測試,然後就沒有然後了。
一般基本的流程走一遍,測試下。一般的架構都有偵錯模式,開啟了多調試調試~
在工作不忙的時候,是單元測試和restTest一起做的。忙的時候就做restTest就行了。
但願測試就不細說了。
restTest就是用php寫一個和項目中聯絡緊密的rest用戶端,然後用php內建的httpServer做伺服器啟動項目(注意選擇測試庫),然後用unittest跑指令碼一個個的訪問rest介面。判斷錯誤等等。
單元測試,PHPUnit
做一個hook 然後手寫測試代碼然後看結果
很少去做測試,一般情況都是編譯下,沒有問題就可以了。