如何在单元测试中访问 Symfony 2 容器?我的图书馆需要它,所以它是必不可少的。
测试类扩展\PHPUnit_Framework_TestCase
所以没有容器。
Symfony 现已内置支持。看http://symfony.com/doc/master/cookbook/testing/doctrine.html http://symfony.com/doc/master/cookbook/testing/doctrine.html
您可以执行以下操作:
namespace AppBundle\Tests;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class MyDatabaseTest extends KernelTestCase
{
private $container;
public function setUp()
{
self::bootKernel();
$this->container = self::$kernel->getContainer();
}
}
有关更现代和可重用的技术,请参阅https://gist.github.com/jakzal/a24467c2e57d835dcb65 https://gist.github.com/jakzal/a24467c2e57d835dcb65.
请注意,在单元测试中使用容器会产生气味。一般来说,这意味着你的类依赖于整个容器(整个世界),这是不好的。您应该限制您的依赖项并嘲笑它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)