将PHPUnit与PHP-DI结合使用

时间:2019-04-15 18:03:17

标签: php unit-testing dependency-injection phpunit php-di

我正在使用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';

这是我应该做的吗?有没有更优雅或推荐的方法来做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,在测试中引导容器是完全可以的。如果您的引导程序做了太多事情,可能会变得更加复杂,但理想情况下,您的引导程序就不应该做太多事情(只需配置容器并创建应用程序类)。