私は再利用可能なバンドルを作成しており、このバンドルとホスティングアプリとの統合テストを実行したいと考えています。問題は、SymfonyがDependencyInjection\Extension::load
とDependencyInjection\Configuration::getConfigTreeBuilder
のどちらのメソッドも私のバンドルのどれかと呼ばないので、バンドルのサービス設定がロードされず、サービスが正しく構築されていないということです。 symfonyに、実際のリクエストのように、テストのすべてをロードするにはどうしたらいいですか?ここでSymfonyでの統合テスト
は私のテストで:
namespace Tests\AclAgentBundle;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class IntegrationTest extends KernelTestCase
{
public function testAgentExistence()
{
$container = static::bootKernel()->getContainer();
$service = $container->get('test.Foo\Bar\Baz');
//...assertions...
}
test.Foo\Bar\Baz
は、テスト中にコンテナのget
メソッドを介してサービスを取得するために使用
services:
test.Foo\Bar\Baz: '@Foo\Bar\Baz'
のようなホスティングアプリのconfigで宣言され、サービスの別名であります。
カーネルファイルにバンドルを追加しましたか? –
@ tokeeen.comはい私はしました – Sergey