Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Carga de archivos

9/24
Recursos

Aportes 9

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Al momento de hacer la validación con assertExist(), me genero error, la forma como lo solucione fue:

$this->assertTrue(Storage::disk('local')->exists($imageRoute));

He notado que en varias clases el profe a veces declara las funciones de los tests con camel case y en otras con snake case. Opino a mi criterio que lo mejor es siempre estandarizar la codificación. Es decir, si por ejemplo declaro mis funciones de testing en un archivo con camel case, entonces debo seguir ese mismo estandar para que así el código luzca siempre prolijo y ordenado 😄

Mi linter se estaba quejando del código del profesor porque $request->file('photo'); puede regresar null y por lo tanto generaría el famoso ‘null pointer exception’… lo solucioné así aprovechando el nuevo feature de php 8 ‘null safe operator’

Route::post(
    'profile',
    function (\Illuminate\Http\Request $request) {
        $file = $request->file('photo');
        $file?->store('profiles');
        return redirect('profile');
    }
);

Uhhhmm, me pregunto cómo se haría este test en un sistema distribuido, por ejemplo, subir algo a S3, imagino que sería algo del tipo, hacerle fake al disco “s3”, podría ser eso, o realmente subir el archivo y testear que sí s sube y luego eliminarlo para que los tests no consuman almacenamiento dentro de S3 🤔

Me están gustando estas clase y hasta cierto punto entiendo los pasos que ejecuta el profe, pero aún no alcanzo a contextualizarlo en un proyecto real.

sencillamente expectacular

Para versiones recientes de Laravel la ruta es:

use App\Http\Controllers\ProfileController;

Route::post('/profile', [ProfileController::class, 'upload']);

Pense que me había vuelto loco, juraría que ya había terminado este curso, pero resulta que hay dos cursos de test con italo. jajaja

Aún así italo es tan buen profesor que con solo tomar el otro curso pase el examen de este y solo tuve mal una pregunta referente a esta clase jeje…

No consigo hacer que pase el test. Me devuelve un error de dependencias:

Call to undefined function Illuminate\Http\Testing\imagecreatetruecolor()

ProfileTest.php

use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Storage;

public function test_upload()
    {
       Storage::fake('local');

       $response = $this->post('profile', [
           'photo' => $photo = UploadedFile::fake()->image('photo.png')
       ]);

       Storage::disk('local')->assertExists("profiles/{$photo->hashName()}");

       $response->assertRedirect('profile');

    }

routes/web.php

Route::view('profile', 'profile');
Route::post('profile', function(Request $request) {
    $request->file('photo')->store('profiles');

    return redirect('profile');
});

composer.json

"require": {
        "php": "^7.3|^8.0",
        "fideloper/proxy": "^4.4",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.0.1",
        "laravel/framework": "^8.12",
        "laravel/tinker": "^2.5"
    },
    "require-dev": {
        "facade/ignition": "^2.5",
        "fakerphp/faker": "^1.9.1",
        "laravel/sail": "^1.0.1",
        "mockery/mockery": "^1.4.2",
        "nunomaduro/collision": "^5.0",
        "phpunit/phpunit": "^9.3.3"
    },

Es posible que sea problema de la versión de Laravel?