2016-03-31 37 views
0

我在我的流浪機器中有項目A和項目B.都可以通過http://a.local/和http // b.local /訪問。這些是Apigility API。PHPUnit:每個請求404代碼

我現在正在用PHPUnit編寫測試。 我想測試項目中都可以撥打B項目的服務和檢查:

  1. 響應代碼爲200

  2. 響應是JSON。

  3. 等...

PHPUnit的不斷失敗,因爲響應是404調用任何服務時(從A到B或從B到A):

{404 =>串(54) 「http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html」 '標題'=> 串(9) 「未找到」 '狀態'=> INT(404) '細節'=> 串(15) 「頁面未找到。」}

所有的URL都可以通過瀏覽器訪問。

所有的URL都可以通過Curl訪問。

Browser和Curl返回相同的(相同的)響應和http代碼。

/etc/hosts文件已正確配置。

對於cli和fmp,PHP.ini文件是相同的。

任何想法我做錯了什麼?謝謝!

回答

0

php-unit可能更適合測試應用程序的較小部分(單元測試)。你當然也可以做Curl測試,但是可能有更好的解決方案(REST測試解決方案/框架)來做到這一點。

如果你想使用Curl來測試你的完整應用程序,你必須確保你的php-unit bootstrap加載了所有的應用程序依賴。

編寫一個抽象包裝器或測試用例專門用於測試您的rest-api並使用Curl請求也是一個好主意,因此您不必重複太多的代碼。查詢this answer on stackoverflow瞭解如何做到這一點。但我敢打賭,網上有更多的例子可用,也許你應該做一些谷歌搜索。

0

您沒有安裝ZF \ Rest。創建其餘資源的抽象工廠,包括教義控制器,在該模塊中。

+0

對不起,很晚的答案,zf-campus/rest已安裝。我仍然獲得404甚至更多,在本地主機調用同一個項目,我從任何其他軟件和php-unit獲得不同的響應。它看起來像php單位將只能得到404或200,它是無法獲得任何其他代碼。有任何想法嗎? – repara2