在测试类Symfony2中获取容器

now*_*iko 1 php containers phpunit unit-testing symfony

我怎样才能让容器能够在测试类中获得mys服务.我找到了解决办法require_once dir(__FILE__). '/...../AppKernel.php;,但是当我WebTestCase上课并找到了

protected static function createClient(array $options = array(), array $server = array())
{
    static::bootKernel($options);

    $client = static::$kernel->getContainer()->get('test.client');
    $client->setServerParameters($server);

    return $client;
}
Run Code Online (Sandbox Code Playgroud)

哪里有内核启动,另外一个类KernelTestCase让我想知道我需要require_onceAppKernel文件还是存在一些更灵活,更好的方法来获取服务容器?谢谢!

TOZ*_*TOZ 5

示例:

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class Test extends WebTestCase
{
   public function testCreate()
   {
      $client = static::$kernel->getContainer()->get('yourservice')
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 实际上你忘记了static :: bootKernel().:) (2认同)