2011-04-15 94 views

回答

10

將請求摘入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服務的更多詳細信息。

+0

嗨戈登,謝謝你的回覆。我們通過從命令行發送包含服務操作和服務類名稱的URI來實際執行服務。所以我懷疑如果EXEC在PHPUnit中工作。如果有,它將解決我的問題(因爲我可以使用EXEC運行我在命令行上運行的任何程序並測試服務) – sri 2011-04-17 22:38:50

+0

@sri PHPUnit的Test Helpers擴展可以重命名函數。請參閱https://github.com/sebastianbergmann/php-test-helpers – Gordon 2011-04-18 06:08:40

-2

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

無恥的自我推動! 寫一個洋蔥:)

+0

非常酷的想法,但需要支持標頭/ cookie。您還將如何測試經過身份驗證的API。 – 2012-05-30 18:51:30

+6

鏈接已死,你會把它放在github上嗎? – 2012-09-11 19:03:51