1

this documentation에 따르면, 내가 좋아하는, 내 테스트 클래스의 setUp() 함수를 작성할 수 있습니다이 메소드가 호출되지 않고 실행되는 이유는 무엇입니까?

use Doctrine\ORM\Tools\SchemaTool; 
use Liip\FunctionalTestBundle\Test\WebTestCase; 

class AccountControllerTest extends WebTestCase 
{ 
    public function setUp() 
    { 
     $em = $this->getContainer()->get('doctrine')->getManager(); 
     if (!isset($metadatas)) { 
      $metadatas = $em->getMetadataFactory()->getAllMetadata(); 
     } 
     $schemaTool = new SchemaTool($em); 
     $schemaTool->dropDatabase(); 
     if (!empty($metadatas)) { 
      $schemaTool->createSchema($metadatas); 
     } 
     $this->postFixtureSetup(); 

     $fixtures = array(
      'Acme\MyBundle\DataFixtures\ORM\LoadUserData', 
     ); 
     $this->loadFixtures($fixtures); 
    } 
//... 
} 

하지만 확장 WebTestCase 클래스의 setUp() 방법을 찾을 때, 나는 그것을 찾을 수 없습니다. 내 이해는 자식 클래스의 부모 클래스에서 메서드를 다시 정의 할 수 있습니다. 상위 클래스는이 메소드가 실행 된 이유를 때 나에게 설명하기 바랍니다

https://github.com/liip/LiipFunctionalTestBundle/blob/master/Test/WebTestCase.php

? 감사합니다

+1

https://github.com/sebastianbergmann/phpunit/blob : 여기 https://phpunit.de/manual/current/en/fixtures.html

는 심포니가 확장되는 실제 추상 클래스에 대한 링크입니다 /master/src/Framework/TestCase.php#L2210 모든 수업을 들었습니다. 이것은 메소드가 시작된 곳입니다. –

+0

@E_p, 정말 고맙습니다. –

답변

2

실제로 Symfony 테스트 프레임 워크가 확장하는 PHPUnit에서 사용됩니다.

대한 추가 정보에 대한 phpunit을 문서를 살펴 보자 https://github.com/sebastianbergmann/phpunit/blob/master/src/Framework/TestCase.php#L2210

+1

또한 클래스를 확장 할 때 기존 메서드를 재정의하는 데에만 국한되지 않습니다. 완전히 새로운 메소드를 추가 할 수 있습니다. 그런 다음 코드를 사용하여 호출 할 수 있습니다. –

+0

정보에 대한 의견을 보내 주셔서 감사합니다. 나는 지금 완전히 이해하고있다. PHPUnit은 Symfony2 표준 에디션의 일부로 제공된다는 사실을 잊어 버렸습니다. 나는 그것이 liipfunctionaltestbundle과 함께 온다고 생각했다. 멍청한 실수. –