【发布时间】:2013-11-06 21:41:20
【问题描述】:
由于我没有将模型直接传递给它,而是希望我的经理为我创建它,因此我有什么方法可以完全测试此方法?
public function giveAchievement(User $user, $achievementType)
{
$a2p = new Achievement2User();
$a2p->setUser($user);
$a2p->setAchievement($this->em->getReference(AchievementManager::ACHIEVEMENT_CLASS, $achievementType));
$a2p->setObtainedOn(new \DateTime());
$this->em->persist($a2u);
$this->em->flush();
}
由于我模拟了$em,我可以检查它是否使用Achievement2User 的实例调用了persist 方法:
$this->em->expects($this->once())
->method('persist')
->with($this->isInstanceOf('Achievement2User'));
但是有什么方法可以真正检查通过的模型是否正确设置了 User 和 Achievement 字段?
【问题讨论】:
-
你要测试什么类?
-
没关系,就叫它
AchievementManager,它只包含一个方法,就是我写源代码的那个。User和Achievement2User只是带有 getter+setter 和 0 逻辑的普通模型。
标签: phpunit