Próbuję uruchomić ten test funkcjonalny na moim kontroler laravel. Chciałbym przetestować przetwarzanie obrazu, ale żeby to zrobić, chcę sfałszować przesyłanie obrazów. Jak mam to zrobic? Znalazłem kilka przykładów w Internecie, ale żaden nie wydaje się działać dla mnie. Oto co mam:Jak przetestować przesyłanie plików za pomocą laravel i phpunit?
public function testResizeMethod()
{
$this->prepareCleanDB();
$this->_createAccessableCompany();
$local_file = __DIR__ . '/test-files/large-avatar.jpg';
$uploadedFile = new Symfony\Component\HttpFoundation\File\UploadedFile(
$local_file,
'large-avatar.jpg',
'image/jpeg',
null,
null,
true
);
$values = array(
'company_id' => $this->company->id
);
$response = $this->action(
'POST',
'[email protected]',
$values,
['file' => $uploadedFile]
);
$readable_response = $this->getReadableResponseObject($response);
}
Ale regulator nie przejdzie ten test:
elseif (!Input::hasFile('file'))
{
return Response::error('No file uploaded');
}
Więc jakoś plik nie przepuszcza prawidłowo. Jak mam to zrobić?
Aktualizacja
podstawie suggestin max.lanin za, próbowałem też:
public function setUp()
{
// Tried with parent::setUp() here and at the end
// parent::setUp();
$local_file = __DIR__ . '/test-files/large-avatar.jpg';
print($local_file);
$_FILES = array(
'file' => array (
'tmp_name' => $local_file,
'name' => 'large-avatar.jpg',
'type' => 'image/jpeg',
'size' => 335057,
'error' => 0,
),
'image' => array (
'tmp_name' => $local_file,
'name' => 'large-avatar.jpg',
'type' => 'image/jpeg',
'size' => 335057,
'error' => 0,
),
);
parent::setUp();
}
ale bez sukcesu. Używany plik istnieje, a rozmiar jest poprawny.
widzę już umieścić to w tryb testowy. Czy przesłany plik jest większy niż maksymalny rozmiar pliku ustawiony w php.ini? –
Nie, to nie wszystko, limit przesyłania to 2mb, plik testowy to 300kb. –