PHP中的快照測試:一種革命性的測試方法
>
Matt Trask,Paul M. Jones和Yazid Hanifi對同行評審。 感謝SitePoint的同行評審!
編程突破是罕見且令人振奮的。 快照測試對我來說是這樣的時刻,從根本上改變了我的方法。 儘管我的背景處於PHP,但最初在JavaScript中遇到的這項技術為PHP開髮帶來了重大好處。 讓我們探討什麼是快照測試以及它如何增強PHP應用程序開發。
鍵概念
>自動比較:快照測試捕獲應用程序輸出或狀態,並將其與存儲的“快照”進行比較,自動突出了複雜數據結構或UIS中的差異。 >
>動態基線:> 解決問題
>“ HTML和JavaScript的混合”不是問題的分離,而是
function Tweet(props) { return ( <div className="tweet"> <img src={props.user.avatar} / alt="快照測試是什麼,在PHP中可行?" > <div className="text"> <div className="handle">{props.user.handle}</div> <div className="content">{props.content}</div> </div> </div> ); }
可以使用XHP等框架在PHP中復制不尋常的語法(儘管兼容性需要檢查)。 props
傳統接口測試限制>
諸如硒和Behat之類的方法模擬瀏覽器相互作用以測試接口。但是,這些可能是脆弱的,它依賴於確切的標記結構而不是基本的邏輯。
快照測試:出色的方法>
快照測試利用諸如react示例之類的組件的確定性。 我們定義組件的渲染行為,測試捕獲給定輸入的輸出。 隨後的測試與此快照進行比較。 Tweet
帶有Phpunit快照斷言
PHP實現 庫簡化了PHP中的快照測試。 通過作曲家安裝它:
然後,在您的phpunit測試中使用所提供的斷言:spatie/phpunit-snapshot-assertions
function Tweet(props) { return ( <div className="tweet"> <img src={props.user.avatar} / alt="快照測試是什麼,在PHP中可行?" > <div className="text"> <div className="handle">{props.user.handle}</div> <div className="content">{props.content}</div> </div> </div> ); }
composer require --dev spatie/phpunit-snapshot-assertions
$this->renderMyComponent()
中的用例
>>模板測試:
快照測試提供了一種強大而有效的方法來測試PHP應用程序的複雜方面。 它處理動態產出和充當生活文檔的能力使其成為任何PHP開發人員的測試庫的寶貴補充。 探索其潛力並將其集成到您的工作流程中,以獲得更健壯和可維護的代碼。
以上是快照測試是什麼,在PHP中可行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!