2016-06-27 99 views
0

我試圖測試一個API,要求用戶通過網絡通過Laravel登錄。 Javascript將使用CSRF令牌訪問REST API。當我嘗試使用Codeception對其進行測試時,似乎認證沒有被sendPOST調用識別。使用Laravel5身份驗證的Codeception功能API測試

我用我的API套件以下模塊:

modules: 
    enabled: 
     - Laravel5 
     - \Helper\Api 
     - REST: 
       depends: PhpBrowser 
       url: http://app.dev/api/ 

這裏是我的測試:

public function verifyFileIsRequired(ApiTester $I) 
{ 
    $I->amLoggedAs($this->user); 
    $I->sendPOST(self::URL_GOES_HERE); 
    $I->seeResponseCodeIs(422); 
} 

我不斷收到401響應代碼。我有一種感覺,這是由於sendPOST方法沒有發送Laravel會話信息。有沒有辦法做到這一點?

謝謝!

+1

你可以使用http://codeception.com/docs/modules/Laravel5#sendAjaxPostRequest代替 – Naktibalda

+0

這似乎運作良好!只要REST模塊被禁用。是否有任何理由使用REST模塊和Laravel5模塊? – rand0mb1ts

+1

REST模塊具有檢查JSON和XML響應的有用方法。 – Naktibalda

回答

1

Naktibalda指出我正確的方向來解決問題。 發佈回答讓別人遇到這個問題。

在我的api.suite.yml中,我應該有REST模塊依賴於Laravel5。

modules: 
    enabled: 
     - Laravel5 
     - \Helper\Api 
     - REST: 
      depends: Laravel5 <-- this was the fix