Я пытаюсь настроить TDD на laravel, но у меня возникают проблемы с тестовым контроллером, который запрашивает коллекцию записей и возвращает представление с данными, когда я запускаю свой тест, он возвращает сообщение об ошибке, которое пытается получить идентификатор undefined свойство
// мой тест
namespace Tests\Unit;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
class JobApplicationTest extends TestCase
{
use WithoutMiddleware;
/** @test */
public function user_can_see_all_open_positions()
{
// when user visit apply for a job page
$this->withoutExceptionHandling();
$response = $this->get(route('positions.open'));
$response->assertSuccessful();
$response->assertViewIs('positions.open.index');
$response->assertViewHas('positions');
}
}
// My controller
public function open(Request $request)
{
//TODO support additional filters & searches
//initialize query
$query = Position::query()->which()->are()->open();
//paginate query result
$positions = $query->paginate(config('app.defaults.pageSize'));
$data = [
'route_title' => 'Open Job Positions',
'route_description' => 'Available Job Positions',
'positions' => $positions,
];
return view('positions.open.index', $data);
}
, поэтому проблема в том, что когда я запускаю текст, он выглядит как представление возвращается без данных, в то время как представление ссылается на данные, возвращаемые в контроллер
сообщение об ошибке при запуске test
1) Tests \ Unit \ JobApplicationTest :: user_can_see_all_open_positions ErrorException: попытка получить свойство 'id' не-объекта (View: / var / www/html/ipf-projects/niajiri/resources/views/pos itions / open / index. клинок. php)
<h3>
<a href="{{ route('positions.preview', [
'id' => $position->id,
'slug' => str_slug($position->title)
]) }}" class="text-navy">
{!! $position->title !!} - {!! $position->organization->name !!}
</a>
</h3>