Как проверить загрузку файлов в 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 приветствуются.