我正在使用PHP-DI库,根据PHP-DI文档的建议,using a bootstrap and config file对我的代码非常有用。
然后,在我的应用程序中,我正在获取容器并通过调用引导程序来启动事情:
$container = require __DIR__ . '/Container/bootstrap.php';
$main = $container->get( Main::class );
所以现在我正尝试使用PHPUnit设置单元测试。
我想在每个Test类中使用$ container,以便可以使用$ container-> injectOn($ this)as suggested in the PHP-DI documentation注入每个测试的所有依赖项。
我偶然发现了这个悬而未决的问题(主要是在我头上),但是它仍然是开放的,似乎没有任何建议。
https://github.com/PHP-DI/PHP-DI/issues/125
我唯一的想法是我可以像使用主应用程序一样在setUp()中调用引导程序?
$container = require __DIR__ . '/Container/bootstrap.php';
这是我应该做的吗?有没有更优雅或推荐的方法来做到这一点?
谢谢!
答案 0 :(得分:1)
是的,在测试中引导容器是完全可以的。如果您的引导程序做了太多事情,可能会变得更加复杂,但理想情况下,您的引导程序就不应该做太多事情(只需配置容器并创建应用程序类)。