为什么这个方法没有被调用就被执行了?
Why this method get executed without being called?
根据this documentation,我可以在我的测试class中写一个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 class 中寻找 setUp()
方法时,我没有找到它。我的理解是可以在childclass中从parentclass重新定义一个方法。 Parent class 是:
https://github.com/liip/LiipFunctionalTestBundle/blob/master/Test/WebTestCase.php
请解释一下为什么以及何时执行此方法?谢谢
setUp()
实际上被 PHPUnit 使用,Symfony 测试框架扩展了它。
查看 PHPUnit 文档以获取更多信息:https://phpunit.de/manual/current/en/fixtures.html
这是 Symfony 正在扩展的 class 实际摘要的 link:https://github.com/sebastianbergmann/phpunit/blob/master/src/Framework/TestCase.php#L2210
根据this documentation,我可以在我的测试class中写一个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 class 中寻找 setUp()
方法时,我没有找到它。我的理解是可以在childclass中从parentclass重新定义一个方法。 Parent class 是:
https://github.com/liip/LiipFunctionalTestBundle/blob/master/Test/WebTestCase.php
请解释一下为什么以及何时执行此方法?谢谢
setUp()
实际上被 PHPUnit 使用,Symfony 测试框架扩展了它。
查看 PHPUnit 文档以获取更多信息:https://phpunit.de/manual/current/en/fixtures.html
这是 Symfony 正在扩展的 class 实际摘要的 link:https://github.com/sebastianbergmann/phpunit/blob/master/src/Framework/TestCase.php#L2210