【发布时间】:2014-10-27 10:34:35
【问题描述】:
我正在尝试为返回深层实体结构的单元测试创建实体管理器的模拟。
基本上我想改变这个:
$p1 = new Product();
$p1->setName("product 1");
// ...
$c = new Command();
$c->setDate(new Date());
$c->setId(1);
$c->addProduct($p1);
// ...
进入这个:
p1 = $this->getMock('\Acme\DemoBundle\Entity\Product');
$p1->expects($this->any())
->method('getName')
->will($this->returnValue("product 1"));
// ...
$c = $this->getMock('\Acme\DemoBundle\Entity\Command');
$c->expects($this->any())
->method('getDate')
->will($this->returnValue(new Date()));
$c->expects($this->any())
->method('getId')
->will($this->returnValue(1));
$c->expects($this->any())
->method('getProducts')
->will($this->returnValue(array($p1)));
// ...
有没有一种简单而不那么冗长的方法来得到这个?
谢谢
【问题讨论】:
-
可以用嘲讽的方式简单一点
-
也许你应该看看BazingaFakerBundle,一个基于Faker的Symfony2包。
标签: unit-testing symfony doctrine-orm mocking entitymanager