php 单元测试 静态类,可选的PHP类型提示/检查单元测试或静态分析?
PHP類型提示不支持標量變量[1],如int或string
但是,我們發現在連續集成期間注釋函數中的類型(int或string)以發現錯誤仍然非常有用,例如:
目前我用的方法就像
function foo($s) {
//assert( is_string($s), 'not a string' );
...
}
在單元測試和開發模式期間,斷言將被取消注釋以發現潛在的錯誤.
我在尋找是否有更好的方法來做到這一點.
解決方法:
一個有趣而優雅的解決方案是AOP.您可以從代碼中刪除所有斷言并開始使用這樣的標準phpdoc:
/**
* @param string $s
*/
function foo($s) {
...
}
從他們的文件:
…with the help of 10-20 lines of code we can intercept all the
public, protected and static methods in all the classes of
application…
您可以使用它來動態攔截所有方法,讀取agruments,獲取ReflectionMethod對象,解析類型相關的注釋并執行運行時檢查.這聽起來很復雜,但這很容易做到.
結果:在每個包含的PHP文件的測試過程中會占用一些運行時資源(不多),但對于你的代碼庫來說它看起來會更好(更干凈).
總結
以上是生活随笔為你收集整理的php 单元测试 静态类,可选的PHP类型提示/检查单元测试或静态分析?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java web如何使用aws,amaz
- 下一篇: java文件批量重命名6,批量重命名文件