如何使用PHPUnit测试Symfony2模型

ner*_*ohc 13 php phpunit symfony doctrine-orm

我一直在尝试在Symfony2项目中测试模型,但我不知道如何让实体管理器保存和检索记录.

任何人都可以指出我正确的文件吗?

Ben*_*cki 21

为了测试模型,可以使用setUp()方法.链接到docs

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class MyModelTest extends WebTestCase
{
    /**
     * @var EntityManager
     */
    private $_em;

    protected function setUp()
    {
        $kernel = static::createKernel();
        $kernel->boot();
        $this->_em = $kernel->getContainer()->get('doctrine.orm.entity_manager');
        $this->_em->beginTransaction();
    }

    /**
     * Rollback changes.
     */
    public function tearDown()
    {
        $this->_em->rollback();
    }

    public function testSomething()
    {
        $user = $this->_em->getRepository('MyAppMyBundle:MyModel')->find(1);
    }
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助


ite*_*man 7

Symfony2模型应该是代表代码中的域模型的域对象.

域对象应该纯粹定义为实现相应域概念的业务行为,而不是由更具体的技术框架的要求定义.- 域驱动设计 - 维基百科,免费的百科全书

域对象(及其测试)不应该依赖于Symfony2 API和Doctrine API,除非您真的想要自己测试.

编写Symfony2单元测试与编写标准PHPUnit单元测试没什么不同.- Symfony - 测试

您可以使用PHPUnit(或Behat)测试域对象中表示的业务逻辑(进程,规则,行为等),并通常测试双精度数.