Я пишу некоторые модульные тесты для проверки конечных точек API в моем приложении Laravel 5, и многие конечные точки требуют аутентификации пользователя. Вместо того, чтобы иметь один и тот же код создания учетной записи пользователя в каждом тесте, я хотел бы определить черту RegistersUsers
для использования в тестовых классах, которая будет иметь метод registerUser()
.
Структура каталога моего каталога tests
выглядит так:
/tests
/Traits
RegistersUsers.php
TestCase.php
UserTest.php
У меня есть имена с именами TestCase.php
и UserTest.php
, добавив это объявление пространства имен:
namespace MyappTests;
и у меня есть namespaced RegistersUsers.php
следующим образом:
namespace MyappTests\Traits;
My UserTest
выглядит так: с пространством имен и use
, чтобы я мог использовать RegistersUsers
.
<?php
namespace MyappTests;
use MyappTests\Traits\RegistersUsers;
class UserTest extends TestCase
{
use RegistersUsers;
// ... rest of the class
Однако, когда я запускаю тест, PHPUnit умирает с фатальной ошибкой:
Trait 'MyappTests\Traits\RegistersUsers' не найден в /home/vagrant/demo -app-net/tests/UserTest.php в строке 9
Насколько я могу судить, мое пространство имен правильное, и моя черта должна быть найдена. Я собираюсь по кругу с этим и, похоже, не понимаю.