나에 대한 요청을 처리하는 Client-library를 사용하여 자체 Rest-API를 테스트하려고한다. 클라이언트가 초기화되고 "wantToGetUserOverClient ($ userId)"라는 작업이 추가되는 도우미를 작성했습니다. 클라이언트는 요청을 수행하여 JSON을 반환합니다. JSON은 JSON을 var_export() 할 때 의도 한대로 작동합니다. 나는 예외를 나머지 모듈을 확장하고 직접 공공 응답 필드를 할당하지만 얻기 위해 시도했다 :PhpBrower를 사용하지 않고 Codeception의 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를 통해 요청해야하지만, 클라이언트를 테스트해야한다면 "베스트 프랙티스"가 무엇입니까? 클라이언트와 웹 서비스에 대한 별도의 테스트가 필요합니까? – CodingNinja
예, 클라이언트와 웹 서비스의 테스트를 분리해야합니다. – Naktibalda