【发布时间】:2018-03-10 17:35:40
【问题描述】:
我有一个这样的方法
public function prePersist(LifecycleEventArgs $event)
{
$em = $event->getEntityManager();
$entity = $event->getObject();
$metadata = $em->getClassMetadata(get_class($entity));
}
我已经测试了getEntityManager 和getObject 方法,但是是时候测试getClassMetadata 方法和每个参数了,在这种情况下,它只有一个!
get_class($entity)
以上行返回名称类(随机):
Mock_ObjectManager_126b0394
Mock_ObjectManager_cc9f593f
Mock_ObjectManager_8e119a34
它从不返回实名类...我想在调用getClassMetadata 时检查第一个参数集。
$test = $this;
$this->em->expects($this->at(0))
->method('getClassMetadata')
->with(
$this->callback(function($arg) use ($test) {
$test->assertThat($arg,
$this->logicalAnd(
$this->equalTo('ObjectManager')
)
);//assertThat
return true;
}) // callback
)
->willReturn($this->objectManager);
如何测试?
【问题讨论】:
标签: php unit-testing testing mocking phpunit