재사용 가능한 번들을 작성 중이며이 번들과 호스팅 앱의 통합 테스트를 수행하고 싶습니다. 문제는 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'
같은 : 여기
내 테스트입니다 .
커널 파일에 번들을 추가 했습니까? –
@ tokeeen.com 예 했어 – Sergey