Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 26.07.2021 17:02:49

падают юнит тесты

Падает юнит тест когда вывожу ошибку 404

 public function boot()
    {
        $this->bootEvents();
        $this->mapRoutes();

        \Stancl\Tenancy\Middleware\InitializeTenancyByDomain::$onFail = function () {
            //abort(404);
            return response()->view('404');
        };

        $this->makeTenancyMiddlewareHighestPriority();
    }

есть установленные тенанты, если тенанта не существует то должно выводится ошибка 404, любым способом вывожду ошибку 404 но падают юнит тесты они отвечают

1) Tests\Feature\ExampleTest::testBasicTest
Expected status code 200 but received 500.
Failed asserting that 200 is identical to 500.

он типа ожидает 200 ответ но получает ошибку 500, как это решается и в чём проблема?

Не в сети

#2 27.07.2021 07:51:08

Re: падают юнит тесты

Если цель теста в проверке что возникает исключение (а abort 404 вызывает исключение), то тебе нужен expectException()

Ну и, само собой, надо не накосячить с кодом. Ошибка 500 говорит о том, что где-то ты облажался. Я не могу ничего подсказать про конкретную библиотеку и походу никто здесь не в курсе.

https://thephp.cc/articles/questioning- … -practices
https://phpunit.de/manual/6.5/en/writin … exceptions

Изменено artoodetoo (27.07.2021 07:54:12)


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 27.07.2021 09:27:22

Re: падают юнит тесты

если ставлю

 public function boot()
    {
        $this->bootEvents();
        $this->mapRoutes();

        \Stancl\Tenancy\Middleware\InitializeTenancyByDomain::$onFail = function () {
            abort(404);
            
        };

        $this->makeTenancyMiddlewareHighestPriority();
    }

     abort(404); то возникает ошибка юнит тестов

1) Tests\Feature\ExampleTest::testBasicTest
Expected status code 200 but received 404.
Failed asserting that 200 is identical to 404

что конкретно в коде надо именить и что оно вообще просит?

Не в сети

Подвал раздела