Должен ли класс содержать экземпляр самого себя?

В настоящее время я занят проектом PSR-7 с ответами и запросами.

В настоящее время мы настраиваем приложение в нашем index.php, выполняя что-то вроде:

$app = new Application();

$app->loadConfiguration(
'../config/global.yml',
);

// Should return the response?
$app->run((new ServerRequestFactory())->createServerRequestFromGlobals());

Здесь метод run также вызывает emit метод, который отвечает за отправку заголовков и печать тела ответа.

Запрос и ответ теперь связаны друг с другом одним вызовом, что затрудняет тестирование, поскольку вы не хотите отправлять ответ с заголовками прямо в PHPUnit.

Я удалил emit вызов в цепочке метода run и добавил это в индекс после вызова метода run:

// Send the response.
$app->send();

Таким образом они разъединяются, но недостатком является то, что теперь я должен хранить экземпляр моего ответа в свойстве response внутри моего класса Application.php ($ app).

Я хочу переместить экземпляр ответа в сам класс ответа, но мои коллеги считают, что класс никогда не должен содержать экземпляр самого себя. Но когда я смотрю на фреймворки, это случается довольно часто. Прав ли он по этому поводу?

Какие аргументы я могу привести, чтобы отделить мой запрос и ответ от более простого тестирования?

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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]