3
respostas

Undefined property

Olá!!! Estou tentando reproduzir o teste test_when_a_series_is_created_its_seasons_and_episodes_must_also_be_created(), porém os seguintes erros são mostrados no visual code:

  • Undefined property '$nome'
  • Undefined property '$seasonsQty'
  • Undefined property '$episodesPerSeason'

Esta classe de teste e as demais (SeriesFormRequest e SeriesRepository) estão igual ao código de final do projeto.

Acredito ser alguma alteração na versão do laravel.

3 respostas

O seguinte código funciona:

$request = new SeriesFormRequest();
        
$request->setMethod('POST');

$request->request->add([
    'nome' => 'bar',
    'seasonsQty' => '1',
    'episodesPerSeason' => '1',
]);

// Act
$repository->add($request);

// Assert
$this->assertDatabaseHas('series', ['nome' => 'bar']);
$this->assertDatabaseHas('seasons', ['number' => 1]);
$this->assertDatabaseHas('episodes', ['number' => 1]);

Olá Felipe! Tudo bem?

O erro "Undefined property" pode estar ocorrendo, caso, a classe SeriesFormRequest não tiver as propriedades nome, seasonsQty e episodesPerSeason definidas ou se essas propriedades estiverem definidas como privadas e não tiverem métodos de acesso (getters/setters).

Certifique-se que as propriedades estão definidas corretamente. Isso deve resolver o problema.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Boa tarde Armano e obrigado pela resposta, mas como eu disse, a classe SeriesFormRequest está igual a do professor:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class SeriesFormRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'nome' => ['required', 'min:2'],
        ];
    }
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software