在应用程序(不测试)代码中是否可以使用存根?

时间:2014-09-14 16:19:57

标签: tdd bdd stub

我现在正在学习所谓的伦敦TDD学校(从外到内)。

所以,我已经为第一个特性创建了一个验收测试,并开始开发应用程序,并意识到我可以使用我的测试框架的存根而不是主要尚未创建的对象,而不是测试代码。

这是否有效?

1 个答案:

答案 0 :(得分:0)

如果我正确理解伦敦风格,您将专注于在代码中测试合同的交互流程。因此,除非你没有使用某种类型的框架为你做这件事(比如.NET中的Moq),我假设你(现在)已经自己开发了一些模拟(存根)。在这种情况下,将这些作为生产代码的一部分提升为第一类对象听起来是非常合理的。

如果您的特定语言允许,您可以将其全部转换。继续使用以前的存根作为完整的类成员,然后扩展实际的实现以继续将它们用作模拟对象,测试与所有收集器的交互以及您可能在其中的验证代码。如果您的存根中没有任何特殊的测试代码,那么它们基本上是没有操作的实体,然后您在使用它们时确实没有问题。

事实上,早在所有奇特的框架存在之前,我们真的不得不手工模拟一切,这很常见。