php - 将 PHPUnit 与 PHP-DI 一起使用
问题描述
我正在使用 PHP-DI 库,它通过使用引导程序和配置文件非常适合我的代码,正如 PHP-DI 文档所推荐的那样。
然后,在我的应用程序中,我通过调用引导程序来获取容器并开始工作:
$container = require __DIR__ . '/Container/bootstrap.php';
$main = $container->get( Main::class );
所以现在我正在尝试使用 PHPUnit 设置单元测试。
我想在每个 Test 类中获取 $container ,以便我可以按照 PHP-DI 文档中的建议使用 $container->injectOn($this) 注入每个测试的所有依赖项。
我偶然发现了这个未解决的问题 [这主要是在我的脑海中],但它仍然是开放的,似乎没有任何建议。
https://github.com/PHP-DI/PHP-DI/issues/125
我唯一的想法是我可以像我的主应用程序一样在 setUp() 中调用引导程序吗?
$container = require __DIR__ . '/Container/bootstrap.php';
这是我应该做的吗?有没有更优雅或推荐的方法来做到这一点?
谢谢!
解决方案
是的,在您的测试中引导您的容器是完全可以的。如果您的引导程序做了太多可能会变得更复杂的事情,但理想情况下您的引导程序不应该做太多事情(只需配置容器并创建应用程序类)。
推荐阅读
- javascript - 如何从 json 数据动态渲染 reactjs 组件
- python - 使用“python manage.py runserver”时出错
- c++ - 如何处理定义函数的指针?以及定义返回数组的函数的问题
- c# - 如何从 WebView2 中的代码打开 DevTools?
- javascript - React - 导入动态图像/图像路径时出错
- javascript - 继续从服务器获取一个空数组,用于使用 blob/文件对象发送的 FormData
- microservices - spring rest webservices的编排
- python - 理解 softmax 激活函数中的 'axis' 参数
- javascript - 检查在 vue.js 上运行良好的 twig 文件中的 css 类
- c++ - 如何在 C++ 中准确测量时间?