1.開發完介面, 切換到postman測試, 去資料庫看看是否正常. 來回切換
2.完全不寫單元測試, 或者懶得寫單元測試 , 又或者不知道單元測試是什麼?
3.重構程式碼的時候, 改了一個一行程式碼, 結果引起另外一個地方出問題了,但是完全不知道.
https://github.com/iblues/atu 順手來個start就更好了
看起來有點傻, 能解決什麼問題?(劃重點)
1.快速除錯,無需切換視窗. 可^R 或者 使用儲存檢測. 隨時檢視結果.
2.順便收貨一套完整的API單元測試. 讓你重構無憂, 上線正式環境不再擔心.(劃重點)
3.方便debug,可以檢視當次請求的所有SQL語句, 甚至可以配合telescope快速使用!
4.可使用 xdebug 實現斷點除錯. 無需chrome擴充套件!
5.獨立事務機制, 開發測試不會髒資料庫了!
6.快速的檔案調整機制,快速開啟出錯檔案! 不用根據錯誤提示一個個去找檔案了
7.生成對應API文件(開發中…)
8.當其他人拿到你的程式碼的時候. 通過ATU就可以快速執行,並大致瞭解該介面的關鍵點(如果你寫了足夠斷言)
可能有人會排斥註解的方式. 這跟java的註解不一樣. 完全不影響程式碼邏輯.
1.安裝擴充套件
composer require iblues/atu --dev
2.配置好單元測試
參考:https://www.w3cschool.cn/intellij_idea_doc...
3.選擇任意控制器
參考以下示例對您自己的控制器進行註解.
其中@ATU\Now() 代表需要當前執行.
@ATU\Debug()代表需要輸出完整DEBUG資訊,否則僅報錯時候輸出.
PS:請確認有匹配的路由, 程式是根據路由的對映表進行查詢
會自動根據路由獲取對應的url路徑, 所有無需定義url
//請確保use以下
use Iblues\AnnotationTestUnit\Annotation as ATU;
//請確認有匹配的路由, 程式是根據路由的對映表進行查詢. 如果路由對映錯誤, 會無法執行. 後期會處理這種問題
/**
* @ATU\Api(
* @ATU\Now(),
* )
*/
public function index(Request $request){//...}
/**
* 請確保 xx/xx/1有資料
* @ATU\Api(
* "path":1,
* @ATU\Now(),
* )
*/
public function show($id,Request $request){//...}
4.釋出測試檔案
執行以下命令,會建立tests/api/AtuTest.php. 測試該檔案即可. Tips: ctrl+r / 開啟toggle auto test 即可重新執行測試,加快效率!
php artisan vendor:publish --tag ATU
會建立tests/api/AtuTest.php. 對該檔案執行單元測試即可. Tips: ctrl+r / 開啟toggle auto test 即可重新執行測試,加快效率!
其中有3個方法
1.testNow 執行有@ATU\Now註解的測試,用於快速開發除錯
2 testAll 執行所有ATU引數.
3.testRouter 檢查有標記@ATU\API但是沒有對應路由的
5.相關phpstorm擴充套件
可以不安裝, 此擴充套件是為了程式碼補全和提示.
1.安裝phpstorm外掛.
https://plugins.jetbrains.com/plugin/index...
2.設定外掛 language & framew -> php ->annotations ->Use Alias 新增 Iblues\AnnotationTestUnit\Annotation as ATU
DEMO可以參考https://github.com/iblues/atu/blob/master/...
常用的幾個註解
@ATU\Now()
由於平時開發我們不需要跑全部測試,可以給要執行的測試標記NOW,只跑當前
@ATU\Debug()
開啟debug資訊,方便除錯,也可以在tests/api/AtuTest.php中的$->debug=true全面開啟.
@ATU\Request()
get,post,put的變數都寫在裡面. PS: get類似?id=1的也需要寫成@ATU\Request({“id”:1})
@ATU\Response()
斷言返回結果是不是想用的. 支援正則! 預設不填僅驗證200
常用幾種
@ATU\Response({“data”:{“title”:”/[0-9]*?/i”}})
@ATU\Response(422,{“data”:{“title”:true}})
@ATU\Response(401)
還有很多高階用法
@ATU\Assert()
使用phpunit的預設斷言
如: 判斷test_test表中,是否有title = 返回結果中$.data.title的值(動態獲取).用來檢測是否有寫入資料庫
@ATU\Assert(“assertDatabaseHas”,{“test_test”,{“title”:@ATU\GetResponse(“data.title”)} }),
還有很多,詳情見文件
@ATU\Before()
在執行每個ATU前,執行前置方法. 例如建立使用者, 又或者呼叫另外一個ATU
舉例. 在執行修改API前,先執行寫入API. 用寫入成功的id,給修改使用.
@ATU\Tag()
給ATU標記. 方便Before呼叫,又或者分組呼叫.
還有很多其他用法. 請參考文件
注意事項:
由於第三方擴充套件限制,註解中不支援[]的json 都必須用{} . 舉例: [1,2,3]錯誤. {1,2,3}正確!
字串引用不支援單引號 {‘test’:123} 錯誤, {“test”:123}正確.
@ATU\API中,每個引數之間注意逗號!
技術溝通QQ群: 814333044
能順手給start支援 謝謝
1.開發完介面, 切換到postman測試, 去資料庫看看是否正常. 來回切換
2.完全不寫單元測試, 或者懶得寫單元測試 , 又或者不知道單元測試是什麼?
3.重構程式碼的時候, 改了一個一行程式碼, 結果引起另外一個地方出問題了,但是完全不知道.
https://github.com/iblues/atu
看起來有點傻, 能解決什麼問題?
1.快速除錯,無需切換視窗. 可^R 或者 使用儲存檢測. 隨時檢視結果.
2.順便收貨一套完整的API單元測試. 讓你重構無憂, 上線正式環境不再擔心.(劃重點)
3.方便debug,可以檢視當次請求的所有SQL語句, 甚至可以配合telescope快速使用!
4.可使用 xdebug 實現斷點除錯. 無需chrome擴充套件!
5.獨立事務機制, 開發測試不會髒資料庫了!
6.快速的檔案調整機制,快速開啟出錯檔案! 不用根據錯誤提示一個個去找檔案了
7.生成對應API文件(開發中…)
1.安裝擴充套件
composer require iblues/atu --dev
2.配置好單元測試
參考:https://www.w3cschool.cn/intellij_idea_doc...
3.選擇任意控制器
參考以下示例對您自己的控制器進行註解.
其中@ATU\Now() 代表需要當前執行.
@ATU\Debug()代表需要輸出完整DEBUG資訊,否則僅報錯時候輸出.
//請確保use以下
use Iblues\AnnotationTestUnit\Annotation as ATU;
//請確認有匹配的路由, 程式是根據路由的對映表進行查詢. 如果路由對映錯誤, 會無法執行. 後期會處理這種問題
/**
* @ATU\Api(
* @ATU\Now(),
* )
*/
public function index(Request $request){//...}
/**
* 請確保 xx/xx/1有資料
* @ATU\Api(
* "path":1,
* @ATU\Now(),
* )
*/
public function show(Request $request){//...}
執行以下命令,會建立tests/api/AtuTest.php. 測試該檔案即可. Tips: ctrl+r / 開啟toggle auto test 即可重新執行測試,加快效率!
4.釋出測試檔案
php artisan vendor:publish --tag ATU
會建立tests/api/AtuTest.php. 對該檔案執行單元測試即可. Tips: ctrl+r / 開啟toggle auto test 即可重新執行測試,加快效率!
其中有3個方法
1.testNow 執行有@ATU\Now註解的測試,用於快速開發除錯
2 testAll 執行所有ATU引數.
3.testRouter 檢查有標記@ATU\API但是沒有對應路由的
5.相關phpstorm擴充套件
可以不安裝, 此擴充套件是為了程式碼補全和提示.
1.安裝phpstorm外掛.
https://plugins.jetbrains.com/plugin/index...
2.設定外掛 language & framew -> php ->annotations ->Use Alias 新增 Iblues\AnnotationTestUnit\Annotation as ATU
DEMO可以參考https://github.com/iblues/atu/blob/master/...
常用的幾個註解
@ATU\Now()
由於平時開發我們不需要跑全部測試,可以給要執行的測試標記NOW,只跑當前
@ATU\Debug()
開啟debug資訊,方便除錯,也可以在tests/api/AtuTest.php中的$->debug=true全面開啟.
@ATU\Request()
get,post,put的變數都寫在裡面. PS: get類似?id=1的也需要寫成@ATU\Request({“id”:1})
@ATU\Response()
斷言返回結果是不是想用的. 支援正則! 預設不填僅驗證200
常用幾種
@ATU\Response({“data”:{“title”:”/[0-9]*?/i”}})
@ATU\Response(422,{“data”:{“title”:true}})
@ATU\Response(401)
還有很多高階用法
@ATU\Assert()
使用phpunit的預設斷言
如: 判斷test_test表中,是否有title = 返回結果中$.data.title的值(動態獲取).用來檢測是否有寫入資料庫
@ATU\Assert(“assertDatabaseHas”,{“test_test”,{“title”:@ATU\GetResponse(“data.title”)} }),
還有很多,詳情見文件
@ATU\Before()
在執行每個ATU前,執行前置方法. 例如建立使用者, 又或者呼叫另外一個ATU
舉例. 在執行修改API前,先執行寫入API. 用寫入成功的id,給修改使用.
@ATU\Tag()
給ATU標記. 方便Before呼叫,又或者分組呼叫.
還有很多其他用法. 請參考文件
注意事項:
由於第三方擴充套件限制,註解中不支援[]的json 都必須用{} . 舉例: [1,2,3]錯誤. {1,2,3}正確!
字串引用不支援單引號 {‘test’:123} 錯誤, {“test”:123}正確.
@ATU\API中,每個引數之間注意逗號!
技術溝通QQ群: 814333044
能順手給start支援 謝謝
本作品採用《CC 協議》,轉載必須註明作者和本文連結