【发布时间】:2017-04-07 10:02:58
【问题描述】:
我正在启动 BDD,经过一些阅读后我发现它与 DDD 配合得很好。
现在我有了这个域,其中一个Institution 有一个Places,它们被Assignee 添加到Institution,这是一个分配为组织经理的User。
我仍然无法理解它应该如何,但功能听起来像:作为机构的受让人,我必须能够为组织添加位置
我正在考虑的代码(对不起,代码优先的方法)如下所示:
if ($institution->isAssignee($user)) {
$institution->addPlace(/* properties*/);
}
现在我应该如何编写功能及其场景?我应该离开 作为受让人 部分并离开它吗?还是应该有多种情况?场景会是什么样子?
编辑:
所以我暂时离开了用户权限检查并开始了第一个功能,然后是实现规范。代码可以在here 找到。
这个功能是不是很简单?当然这是我的域的核心功能,但我什至没有提到我的功能中无法添加相同位置的地方的情况,但我已经在InstitutionSpec中做到了这一点?
前进:如果我想编辑机构的Place,有什么更好的方法:
$place = $institution->getPlace($placeId);
$place->editWhatever(/***/);
或
$institution->editWhateverInPlace($placeId, /** edits **/);
【问题讨论】:
标签: php domain-driven-design bdd behat