2016-06-27 64 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