2012-09-16 153 views
8

測試REST API我正在構建一組RESTful API,現在需要爲它們編寫單元測試。我不確定單元測試應該實際測試什麼。使用PHPUnit測試REST API使用PHPUnit

單元測試是否應該檢查從服務器收到的響應對於各種輸入是否正確?如果是這樣,預先定義一組正確的響應格式並檢查對他們的響應是否是一種好的做法?

UPDATE

我打電話通過捲曲這些服務,我一定能查的狀態碼。對於不同的輸入,響應可能會有所不同,所以我應該檢查所有可能的響應?

單元測試通常如何使用PHPUnit進行RESTful API?

回答

4

如果您的API數據層被充分抽象出來,以便您可以接收到給定輸入的一致和可預測的輸出,那麼測試用例肯定應該包含某些有限輸入列表的一些常見輸出期望它們還應該測試任何錯誤你可以鼓起來。

如果您的API無法針對處於可預測狀態的數據層運行(例如,如果它連接到實時數據或與開發人員共享的數據),那麼您最終會花費很多的時間修復你的測試,以正確模擬新的數據狀態。這使得單元測試的價值較低,因爲您可能無法經常運行它們,並且因爲您從未確定測試失敗是由於數據更改還是程序邏輯更改所致。是否超過未進行單元測試的風險將取決於您的個人情況(測試中斷的頻率,服務的重要程度,& ct)。至於如何使用PHPUnit來運行測試用例,我不能回答這個問題,但我想你會像@basiljames所說的那樣去做;針對給定端點執行呼叫並驗證收到的響應是否與您的預期正確匹配。這與其他單元測試沒有什麼不同,除了它們可能運行速度稍慢一些。

2

您可以將JUnit用於您的測試用例。您將必須檢查HTTP Status Code以及之後的任何特定屬性或值的響應內容。