【发布时间】:2016-03-12 20:33:54
【问题描述】:
我写了以下几行代码:
$this->validate($group);
$this->em->persist($group);
$this->em->flush();
如果 $group 无效,方法“validate”将抛出异常。问题是,它似乎有点“脆弱”。如果其他开发人员更改了这段代码,他可能会不小心移动了 validate 方法,而实体管理器会将对象保存到数据库中而不进行验证。
您认为以下代码行更好还是我只是想多了?
$validGroup = $this->validate($group);
$this->em->persist($validGroup);
$this->em->flush();
是否有任何验证模式?
【问题讨论】:
-
写一个测试检查 validate 在persist之前被调用
-
很明显测试会发现它,但假设测试不是一个选项。
标签: design-patterns anti-patterns