Manual:Writing testable PHP code/zh

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

不要假設全域的情境

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

不要建立新的全域變數

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

只依靠直接輸入

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

<span id="Do_not_use_exit()">

請勿使用exit()

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

throw new MWException( "Oh noes!" );

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

外部链接

Category:Testing/zh#Writing%20testable%20PHP%20code/zh
Category:Testing/zh