0
我正在嘗試使用處理請求的客戶端庫來測試我自己的Rest-API。 我寫了一個助手,其中客戶端被初始化並添加了一個名爲「wantToGetUserOverClient($ userId)」的操作。客戶端執行請求並返回JSON,當我使用var_export()JSON時,該JSON按預期工作。 我試圖延長休息模塊,並直接分配公開回應場卻得到一個例外:如何在不使用PhpBrower的情況下從代碼中的REST客戶端保存JSON響應
[ModuleException] PhpBrowser: Page not loaded. Use `$I->amOnPage` (or hidden API methods `_request` and `_loadPage`) to open it
我的問題: 什麼是保存在Codeception REST模塊響應客戶端的響應的最好方式,使我可以使用現有的JSON操作。 例如:
$I->wantToGetUserOverClient(1234);
$I->canSeeResponseIsJson();
而不加載頁面枝條的PhpBrower。
在此先感謝。
我的助手:
class ApiHelper extends \Codeception\Module\REST
{
private $backendApi;
public function __construct(ModuleContainer $moduleContainer, $config = null)
{
parent::__construct($moduleContainer, $config);
$this->backendApi = new BackendRestAPI();
}
public function wantToGetUserOverClient($userId)
{
$this->response = $this->backendApi->user()->one($userId);
}
}
感謝您的答案和解決方案。它的工作原理和我可以建立一個工作解決方案。 最後一件事,我知道我在濫用REST模塊。 我應該通過PHPBrowser發出請求,以便所有事情都像預期的那樣工作,但是如果您必須測試客戶端,那麼「最佳實踐」又是什麼? 客戶端和Web服務的單獨測試? – CodingNinja
是的,你應該真正分開客戶端和web服務的測試。 – Naktibalda