codeception тестирование REST API загрузка файлов

134
20 января 2020, 04:20

Подскажите, тестирую Api на codeception.Мне нужно протестировать метод загружающий файл методом POST. Документация скудновата по этому вопросу. Сам файл положил в _data. тест не срабатывает(хотя должен). Подскажите в чем может быть ошибка

public function saveIdentificationPhotos(ApiTester $I)
    {
        $url = '/account/update-identification-photos';            
        $data = [
            'idDocument' => [
                'name' => 'test_image.jpg',
                'type' => 'image/jpeg',
                'error' => UPLOAD_ERR_OK,
                'size' => filesize(codecept_data_dir('test_image.jpg')),
                'tmp_name' => codecept_data_dir('test_image.jpg'),
            ],
            'idDocumentBack' => [
                'name' => 'test_image2.jpg',
                'type' => 'image/jpeg',
                'error' => UPLOAD_ERR_OK,
                'size' => filesize(codecept_data_dir('test_image2.jpg')),
                'tmp_name' => codecept_data_dir('test_image2.jpg'),
            ],
            'proofOfResidence' => [
                'name' => 'test_image3.jpg',
                'type' => 'image/jpeg',
                'error' => UPLOAD_ERR_OK,
                'size' => filesize(codecept_data_dir('test_image3.jpg')),
                'tmp_name' => codecept_data_dir('test_image3.jpg'),
            ],
            'csrf_token' => $I->getToken(),
        ];
        $I->sendPOST($url,  $data);            
    }
Answer 1

Метод sendPost третьим параметром принимает массив файлов, вторым массив параметров.

public function sendPOST($url, $params = [], $files = [])

То есть у вас должно получится так:

$I->sendPOST('/account/update-identification-photos', [], [
    'photo' => [
        'name' => 'test_image.jpg',
        'type' => 'image/jpeg',
        'error' => UPLOAD_ERR_OK,
        'size' => filesize(codecept_data_dir('test_image.jpg')),
        'tmp_name' => codecept_data_dir('test_image.jpg'),
    ],
]);
READ ALSO
Сайт периодически подвисает на 3 секунды

Сайт периодически подвисает на 3 секунды

Сайт на связке Nginx + FPM + MySQLДело не в БД, уже провел логирование, и исправил недочеты через тюнер

153
PHP достать нужные даные из строки URL

PHP достать нужные даные из строки URL

Здравствуйте задача такая, имеем переменную с ссылкой, из этой ссылки нужно достать нужные данные, если быть конкретным то вот примерИмеем...

160
SQL сбор данных по префиксам в других базах

SQL сбор данных по префиксам в других базах

Подскажите как правильно сформировать запрос если в одной базе у меня хранятся префиксы городов и по этим префиксам нужно подключиться...

172
Создать динамический маршрут Laravel

Создать динамический маршрут Laravel

на данный момент есть такой маршрут category/{cid}-{clink}/ Получается, что передается только одна категорияА нужно чтобы категории перечислялись...

238