1

このドキュメントによると、次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);
    }
//...
}

しかしsetUp()、拡張された WebTestCase クラスでメソッドを探しても、見つかりません。私の理解では、子クラスの親クラスからメソッドを再定義できるということです。親クラスは次のとおりです。

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

このメソッドが実行される理由とタイミングを教えてください。ありがとうございました

4

1 に答える 1

2

setUp()実際には、Symfony テスト フレームワークが拡張する PHPUnit によって使用されます。

詳細については、PHPUnit のドキュメントをご覧ください: https://phpunit.de/manual/current/en/fixtures.html

Symfony が拡張している実際の抽象クラスへのリンクは次のとおりです: https://github.com/sebastianbergmann/phpunit/blob/master/src/Framework/TestCase.php#L2210

于 2016-07-14T21:59:30.913 に答える