2015-07-30 3 views
2

Я пытаюсь использовать Codeception для проверки работоспособности API RESTful моего приложения. Я использую HttpBasicAuth с пользовательской функцией auth, которая проверяет имя пользователя и пароль.YII2 REST API Codeception issue

Конечная точка, которую я пытаюсь протестировать, - это простой пользователь GET/users. Functional.suite.yml выглядит следующим образом:

class_name: FunctionalTester 
modules: 
    enabled: 
    - Filesystem 
    - Yii2 
    - REST: 
     depends: PhpBrowser 
    - tests\codeception\_support\FixtureHelper 
    config: 
    Yii2: 
     configFile: 'codeception/config/functional.php' 
    REST: 
     url: 'http://localhost:8888/v1/' 

Мой UserApiCept.php начинается так:

<?php 
$I = new FunctionalTester($scenario); 
$I->wantTo('test the user REST API'); 
$I->amHttpAuthenticated('goodname', 'goodpassword'); 
$I->sendGET('users/1'); 

Когда я бегу пакет я получаю 401 (Несанкционированное HTTP Исключение). В --debug заголовки запросов пустые. Однако, когда я запускаю GET в Postman (предоставляя имя пользователя и пароль), GET возвращает ожидаемый ответ JSON. Поэтому я знаю, что API работает.

Похоже, что существует проблема с amHttpAuthenticated, которая, как я полагаю, должна предоставлять заголовок авторизации, правильно?

Любые советы о том, как я могу устранить эту проблему?

Mahalo, Джо

ответ

0

В случае, если кто-то еще эта проблема, у меня было неправильно зависимость:

class_name: FunctionalTester 
modules: 
    enabled: 
    - Filesystem 
    - Yii2 
    - REST: 
     depends: Yii2 
... 

Когда я изначально сделал сборку после добавления REST, я получил сообщение об ошибке: «Этот модуль зависит от Codeception \ Lib \ InnerBrowser», а затем привел пример с использованием

depends: PhpBrowser 

Надеется, что это помогает кому-то.

Смежные вопросы