如何使用 DCI 模式测试行为?

Posted

技术标签:

【中文标题】如何使用 DCI 模式测试行为?【英文标题】:How to test the behaviour with DCI pattern? 【发布时间】:2012-02-24 12:24:41 【问题描述】:

我正在编写一个简单的网页游戏来试验 DCI 模式,我想知道如何正确测试上下文。

https://gist.github.com/1718889

我有一个上下文CharacterAttacksAnotherCharacter,它接受两个字符并用两个角色(AttackerTarget)扩展它们。然后执行上下文。

但是,我怎样才能测试这个执行而不是实现的行为呢?

谢谢!

【问题讨论】:

我认为取决于您的#attack 方法。如果你想要测试行为,你不能存根它。 【参考方案1】:

一般来说,在 DCI 上下文中测试交互应该相当容易。上下文的目标之一是自包含,因此将角色绑定到适合测试的对象应该是直截了当的。如果不是,那可能表明它不是真正的 DCI。 我很难在您的代码中找到任何角色方法。这可能是由于我缺乏红宝石技能。 一般来说,交互应该是一个完整的算法,这就是您在为上下文创建单元测试时想要测试的内容。然而,DCI 的目标是创建一个可验证的代码单元,因此如果达到该目标,那么与使用审查来验证上下文的实现及其交互相比,测试工作会在代码的其他部分产生更高的价值

【讨论】:

以上是关于如何使用 DCI 模式测试行为?的主要内容,如果未能解决你的问题,请参考以下文章

如何理解 DCI 模式

DCI架构是如何解决DDD战术建模缺点的?

什么是 DCI,它如何适应 Rails?

DCI

架构模式DCI

DCI架构是如何解决DDD战术建模缺点的?