test pest upload imagem
olá carlos , fiz aqui o curso de pest .
tenho uma dúvida , quando você tem um projeto , e tem que testar um método por exemplo que cria produtos .
e neste método , existe um upload de imagem .
eu vi que existe uma forma de vc fazer um upload de imagem , no pest .
desta forma -
```
$data = [
'image' => new \Illuminate\Http\UploadedFile(public_path('/assets/images/1.jpg'), '1.jpg', null, null, true),
'nome' => 'notebook dell',
'codigo_do_produto' => 123
];
$response = postJson(config('app.url').'/api/product', $data);
```
assim, vc poderia testar , o método store pruduto , enviando a imagem .
outra opção , seria não enviar a imagem ,
la no metodo de criação de produtos , você poderia ter esta função -
$isTesting = env('IS_TESTING');
if(!isTesting) {
}
$isTesting = env('IS_TESTING');
if(!isTesting) {
// cria o protuo
}
oque vc costuma fazer ? quando o metodo existe upload de imagem , vc verifica se estiver testando não envia imagem . ou vc envia a imagem também no teste ?
Olá, Murilo! Tudo bem?
Normalmente testes com upload de arquivos trabalho apenas em testes E2E:
$file = UploadedFile::fake()->image('avatar.jpg');
$data = [
'file' => $file,
];
postJson(url, data, headers);
então vc envia um arquivo ?
imagina um projeto que tem que para criação de produtos , tem que criar uma pasta com codigo pra este produto .
e dentro desta pasta vai as imagens do produto .
se eu for fazer o teste e enviar a imagem , ele vai criar a pasta e colocar as imagens dentro .
então , eu teria que fazer uma pasta pra teste , pra não misturar com a pasta que ja existe .e depois do teste , deletar esta pasta e imagens que forma feitas o upload .
seria mais ou menos assim o processo ?
Exato, crio o arquivo e envio ele na request, simulando o comportamento do client.
Vc pode criar uma pasta separada para os testes, inclusive até delegar o arquivo/pasta no final dos testes (no beforeAll())
Em produção mesmo, o seus arquvios devem ficar em um serviço externo, como um S3 da Amazon, ou em um cloud storage da GCP.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!