我目前正在忙着一个带有回复和请求的PSR-7项目。
目前我们正在通过执行以下操作在index.php中设置应用程序:
$app = new Application();
$app->loadConfiguration(
'../config/global.yml',
);
// Should return the response?
$app->run((new ServerRequestFactory())->createServerRequestFromGlobals());
此处run方法还调用emit
方法,该方法负责发送标题并打印响应正文。
请求和响应现在在一个调用中链接在一起,这使得很难测试,因为您不希望将带有标头的响应直接发送到PHPUnit。
我已经删除了run方法链中的emit
调用,并在run方法调用之后将其添加到索引中:
// Send the response.
$app->send();
这种方式它们是分离的,但缺点是我现在必须在我的Application.php($ app)类中的响应属性中保存我的响应实例。
我想将响应实例移动到响应类本身,但我的同事认为一个类永远不应该拥有自己的实例。然而,当我看到框架时,这种情况发生了很多。这是对的吗?
除了更容易测试之外,我可以使用什么参数来解耦我的请求和响应?
我对单元测试很陌生,我已经听过的一个论点是我不应该测试完整的应用程序,而是分开组件,因此不应该担心解除请求和响应的耦合。