Ricardo
Ricardo
Laravel
Comparte:

Reglas de validación en Test

 
Hola Jorge, he visto esta solución para los test de validación que me parece interesante: https://jasonmccreary.me/articles/test-validation-laravel-form-request-assertion/. Me interesaría saber tu opinión al respecto.
Más abajo dejo la implementación, para el curso  Desarrollo de una API con Laravel, entiendo que así es correcto. Gracias y felicidades por los cursos!
en class CreateArticlesTest extends TestCase
/** @test */
public function store_validates_using_a_form_request()
{
    $this->assertActionUsesFormRequest(
        ArticleController::class,
        'store',
        SaveArticleRequest::class
    );
}

y en el test unitario:
class StoreValidArticleTest extends TestCase
{
   /** @var SaveArticleRequest */
   private $subject;
   protected function setUp(): void
   {
       parent::setUp();
       $this->subject = new SaveArticleRequest();
   }
   public function testRules()
   {
       $this->assertEquals([
            'data.attributes.title' => ['required', 'min:4'],
            'data.attributes.slug' => [
                'required',
                'alpha_dash',
                new Slug,
                Rule::unique('articles', 'slug')->ignore($this->subject->route('article'))
            ],
            'data.attributes.content' => ['required'],
            ],
            $this->subject->rules()
        );
   }
   public function testAuthorize()
   {
       $this->assertTrue($this->subject->authorize());
   }
}