Как проверить загрузку файлов в API с помощью Mockery и PHPUnit

Я использую PHPUnit для тестирования своего API, но я не уверен, как проверить загрузку файлов.

Я смотрел этот урок по Laracast, который дал мне хорошее представление о том, как использовать Mockery для насмешки при загрузке, но в моем случае я пытаюсь протестировать API и по какой-то причине не могу передать свой тест Грин.

Мой тестовый код:

namespace App;

use Symfony\Component\HttpFoundation\File\UploadedFile;
use Mockery as m;

class ApiResourcesControllerTest extends \TestCase
{
    /** @test */
    function a_user_can_upload_a_resource()
    {
        $file = m::mock(UploadedFile::class, [
            'getClientOriginalName' => 'test.jpg'
        ]);

        $file->shouldReceive('move') // the uploaded file is moved 
             ->once()
             ->with('uploads', 'now-test.jpg');

        $files = ['file' => $file]; // endpoint expects Input::file('file);

        // this endpoint definitely works
        $this->call('POST', 'api/resources/upload', [], [], $files);
        $this->dump(); // for the mean time just dump the response
    }
}

function time()
{
    return 'now';
}

Я знаю что api/resources/upload Конечная точка работает просто отлично, но мой тестовый код возвращает следующую ошибку:

Mockery\Exception\InvalidCountException: Method move("uploads", "now-test.jpg") from Mockery_0_Symfony_Component_HttpFoundation_File_UploadedFile should be called exactly 1 times but called 0 times.

Куда я иду не так?

Примеры насмешливых загрузок файлов в API приветствуются.

0 ответов

Другие вопросы по тегам