也许我想念一些东西……我想是的,但是找不到答案。
WebTestCase
生成此构造函数示例:
public function __construct(?string $name = null, array $data = [], string $dataName = '')
{
parent::__construct($name, $data, $dataName);
}
试图将我的服务添加为第一个或最后一个参数-Symfony引发错误:
Type error: Too few arguments to function Tests\AppBundle\Manager\ContactManagerTest::__construct(), 0 passed in /Library/WebServer/Documents/HEPT/vendor/bin/.phpunit/phpunit-5.7/src/Framework/TestSuite.php on line 568 and at least 1 expected in /Library/WebServer/Documents/HEPT/tests/AppBundle/Manager/ContactManagerTest.php:22
我应该以某种方式直接使用容器吗?WebTestCase
如果存在桥接类,为什么自动装配对类不起作用?
WebTestCase用于PHPUnit上下文(与Symfony及其依赖注入无关)。
他们实际上生成了内核及其容器,请参见从Symfony源代码中提取的这段代码:
protected static function createClient(array $options = array(), array $server = array())
{
$kernel = static::bootKernel($options);
$client = $kernel->getContainer()->get('test.client');
$client->setServerParameters($server);
return $client;
}
这意味着您可以像这样轻松地访问容器:
$kernel = static::bootKernel($options);
$container = $kernel->getContainer();
另请注意,static::$kernel->getContainer()
创建客户端进行测试后,该功能将立即可用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句