2012-01-12 498 views
1

我需要對CodeIgniter進行單元測試。我試過CIUnit,但沒有得到V1.7.2中設置的燈具。如何單元測試CodeIgniter代碼

我嘗試了純PHPUnit,但無法創建模型類的存根,因爲它繼承了活動記錄,並且拋出了找不到activerecord的錯誤。顯然,沒有控制器加載了activer record helper。

有沒有辦法在Codeigniter中進行單元測試。我知道簡單的測試庫,但與phpunit相比,它有多好。 還有什麼辦法可以做集成測試嗎。

+2

短版:你不能,該笨框架防止核心部件的單元測試的控制器。由於您的代碼是從這些核心組件(派生)擴展而來的,因此您的代碼也會陷入困境,並且無法形成可測試的單元。 – hakre 2012-01-12 09:55:23

回答

2

FooStack是一個可以幫助你的附加組件。它包括燈具說明,並與1.7.2兼容(這是一箇舊版本,BTW)。

http://www.knollet.com/foostack/

+0

謝謝,我試過foostack,並有一些障礙能夠運行測試功能。儘管我還剩下很少的問題。如何測試使用$ _POST數據的函數。此外,爲ViewAllTests提供的示例看起來很複雜,有沒有簡單的方法來測試單個視圖。 – aeonsleo 2012-01-17 09:06:57

+1

由於我實際上並沒有使用foostack,因此請多多關照一下這個建議,但是您應該可以使用本地PHP來設置您的測試中需要的$ _POST數組值。 – 2012-01-22 23:16:39

+0

丹的建議適用於此。在Foostack中,您設置您的POST數組,然後觸發控制器方法。內置的CI帖子功能只需使用您設置的POST數組。拋出一堆Mock對象和一些Setup/Teardown,你很好走。 – willoller 2012-10-04 01:16:24