# Test de excepciones en Laravel con PestPHP

## Introducción

El cambio de PHPUnit a [PestPHP](https://pestphp.com/) es algo progresivo.

Muchas veces se nos pasa que hay otros caminos de hacer las cosas. Este es uno de ellos, los **test de excepciones**

![Test de Excepción :: PHPUnit vs PestPHP](https://multimedia.castris.com/imagenes/wiki/laravel/ThrowPest.png)

Con Pest es mas limpio hacer:

```php
expect(fn () => CommandCenterProblem::factory()->create([
        'command_center_id' => $commandCenter->id,
        'trigger_id' => $trigger->id,
        'created_at' => $now,
    ]))->toThrow(UniqueConstraintViolationException::class);
```

aunque también podemos hacerlo a la vieja usanza.

```php
$this->expectException(UniqueConstraintViolationException::class);
    
    CommandCenterProblem::factory()->create([
        'command_center_id' => $commandCenter->id,
        'trigger_id' => $trigger->id,
        'created_at' => $now,
    ]);  
```

Como siempre, en programación hay más de un camino, perfectamente validos. Son gustos o preferencias personales.



##### Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. 
También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad.
El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/store/soporte-profesional).