【Laravel】如何在Laravel使用單元測試(上)

Laravel 內建有php unit 很方便~^^

一、內建範例

預設在tests資料夾內有Feature資料夾和Unit資料夾,以及很好心的各有內建範例給你參考~

(一) Feature 功能測試

其基本定義為:用來測試檢查多個function、
多個method整合在一起的功能是否正常~

基本上就是用來測試API
(也算是測試Controller裡的某個function~)

#內建範例:去檢查網站是否存在

(二) Unit 單元測試

用來測試單一個function~

可以先將某個service、model、repository實例化之後
去呼叫實例裡面其中一個function

得到function回傳的結果之後
使用assert類的方法
去判斷實際結果和我們預測的是否相同

#內建範例:直接assert true @@

二、如何觸發內建範例?

只要下指令即可測試~

$ php artisan test

如果是比較舊版本也可以下

/vendor/bin/phpunit

#以下測試結果,兩個通過~

三、phpunit.xml 設定檔

指令下完之後~
程式會去抓Feature資料夾和Unit資料夾
底下名字以「Test」為結尾的class

然後再去偵測class裡面所有以test開頭的fuction
去執行裡面的邏輯~

這些在設定檔檔裡都看的到

四、.env.testing 測試環境檔

請看上圖所示 的那行

代表在進行測試的時候
laravel會略過原本的.env檔
而去抓.env.testing檔 (根據給value的值)

備註:
如果之後作測試時下指令
想在指令中指定特定 .env檔
則可使用如下所示指令
$ php artisan test --env=testing_new

就會略過原本.env.testin的東西
改去抓.env.testing_new裡的參數