任何人都可以讓我知道如何使用PHPUnit來測試REST風格的Web服務嗎? PHPUnit似乎沒有這種能力。使用PHPUnit測試REST風格的Web服務
回答
將請求摘入Request Object。通過這種方式,您可以測試代碼而無需實際製作請求。那麼測試很簡單。
class RequestTest extends PHPUnit_Framework_TestCase
{
public function testRequest()
{
$request = new Request();
$request->setMethod('PUT');
$request->setPutData(…);
$this->assertSomething(
$this->testSubjectUsingRequest->process($request)
);
}
}
如果你要測試的響應從web服務,模擬/存根的web服務的API。
關於Stubbing and Mocking Web Services,雖然建議的內置web服務模擬工具適用於具有WSDL的Soap服務,但PHPUnit章節中還有一章,因此您必須手動配置您的Mocks(就像使用任何模擬資源一樣)。
如果這不能解決您的問題,請更新您的問題,並提供有關RESTful服務的更多詳細信息。
OnionTest http://www.oniontest.org/ 我有完全相同的問題。 Selenium,PHPUNIT非常棒,但它仍然是快速輕鬆測試rest/http服務的使命。我花了我大部分的時間,清理數據庫,僞造http發佈與瀏覽器/腳本,檢查結果在DB這樣的例子不勝枚舉:)所以我寫了OnionTest
這一切都歸結到幾個文本文件,有urls.txt被調用,並與你寫的onions.txt(你的測試斷言)進行比較。寫一個洋蔥:)
它給了我下面的
- EASY/FAST方式做GET /文本方面與參數的發佈網址
- 檢查響應(代碼體)和文本應沒有。
- 對響應以及計數xpath結果運行xpath(xml)表達式
- 詳細的url調用! (聽起來很簡單),但DAMN很有用!在得到奇怪的結果後,你做的第一件事是什麼。轉儲網址/通話。 OnionTest您只需設置「詳細|| 1」的URL
O和它是免費的,它的測試版,這是一個週末的項目 - 依然共度,但非常實用!請參閱Getting Started快速Hello World指南。其他明智的看到「示例頁面」快速「TableRowCount」和「TableRowRecord」OnionTest
無恥的自我推動! 寫一個洋蔥:)
非常酷的想法,但需要支持標頭/ cookie。您還將如何測試經過身份驗證的API。 – 2012-05-30 18:51:30
鏈接已死,你會把它放在github上嗎? – 2012-09-11 19:03:51
- 1. 測試REST風格的JSON Grails的web服務
- 2. 測試REST風格的Web服務的工具
- 3. 測試Tornado Mongo REST風格的web服務
- 4. 如何測試REST風格的Web服務性能
- 5. 瞭解REST風格的Web服務壓力測試結果
- 6. 春季REST風格的web服務測試
- 7. 單元測試使用Spring,RestTemplate和Java Config的I18N REST風格的Web服務
- 8. 使用PHPUnit測試REST API使用PHPUnit
- 9. 使用arquillian測試REST Web服務
- 10. 如何使用可變參數測試REST風格的服務?
- 11. REST風格的Web服務在Netbeans 6.9中使用Mysql測試錯誤
- 12. 使用XMPP服務器設計REST風格的Web服務
- 13. 測試REST Web服務
- 14. REST風格的Web服務中的@POST
- 15. Grails中的REST風格的Web服務
- 16. CakePHP中的REST風格的Web服務
- 17. 測試並試用REST Web服務
- 18. GWT + Spring MVC(REST風格的Web服務)
- 19. 實現REST風格的Web服務
- 20. TomEE與Jersey REST風格的Web服務
- 21. REST風格的Web服務發佈API
- 22. REST風格的Web服務GET文件
- 23. 設置REST風格的Web服務
- 24. 什麼是REST風格的Web服務
- 25. REST風格的Web服務和RESTful API
- 26. jquery REST風格的Web服務
- 27. 關於REST風格的Web服務
- 28. REST風格的web服務代理類
- 29. ASP.NET REST風格的Web服務
- 30. 使用ORMLite在REST風格的Web服務中進行事務
嗨戈登,謝謝你的回覆。我們通過從命令行發送包含服務操作和服務類名稱的URI來實際執行服務。所以我懷疑如果EXEC在PHPUnit中工作。如果有,它將解決我的問題(因爲我可以使用EXEC運行我在命令行上運行的任何程序並測試服務) – sri 2011-04-17 22:38:50
@sri PHPUnit的Test Helpers擴展可以重命名函數。請參閱https://github.com/sebastianbergmann/php-test-helpers – Gordon 2011-04-18 06:08:40