Jump to content

Manual:编写可测试的PHP代码

From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page is a translated version of the page Manual:Writing testable PHP code and the translation is 100% complete.

有關編寫可測試代碼的一些說明,將會在某個時候擴充。

不要假設全域的情境

如果在非全域的上下文中存取全域變數 (例如 $wgRequest) 而沒有先使用 global 關鍵字來宣告它們,將會導致失敗並產生 E_NOTICE 訊息。

不要建立新的全域變數

將資訊放入全域變數看似容易,但卻會降低程式碼的可預測性。 依賴於全域變數,你就很難將功能隔離。 單例類型較適合測試 (但仍不太理想)。

只依靠直接輸入

雖然這並非永遠都能實現,但最好還是寫出只依賴直接輸入的程式碼。 也就是說,一個類別只使用傳給它的資訊,而不依賴單例或全域變數來取得「頻外」資訊。

<span id="Do_not_use_exit()">

請勿使用exit()

幾乎就是絕對不要突然退出腳本。 此舉會使PHPUnit無法測試您的程式碼。 如果您的程式碼遇到意料之外的錯誤,正確的做法是拋出類似以下的異常:

throw new MWException( "Oh noes!" );

這將允許PHPUnit和MediaWiki正確退出,並向開發人員提供堆疊追蹤等資訊。

外部链接