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