Итак, я учусь делать тесты для своего приложения и один из тестов, которые он не хочет проходить, и вот это логика c: В основном, когда пользователь запрашивает домашнюю страницу, я ожидаю, что Счетчик списка базы данных будет равен 0, и это пройдено, тогда я ожидаю также, что сеанс имеет ключ ошибки NoBook
, и здесь происходит сбой. это код, который я пробовал:
class BookDisplayManagmentTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function Show_error_message_when_there_is_no_book_to_display_in_index_page()
{
//Request the home page
$response = $this->get(route('home'));
// I expect the count on the database book equal 0
$this->assertCount(0, book::all());
//Then I also expect that the session will flash an error with key NoBook
$response->assertSessionHasErrors('NoBook');
}
}
Но проблема, я получаю эту ошибку:
Session is missing expected key [errors]. Failed asserting that false is true.
И код, который добавляет ошибку сеанса:
<?php
namespace App\Http\Controllers;
use App\Books;
use Illuminate\Http\Request;
class IndexController extends Controller
{
/** @show index function */
public function index()
{
$book = Books::paginate(7);
if(!$book->count())
{
session()->now('NoBook','There is no books at the moment');
}
return view('index', compact('book'));
}
}