我还没有加入 TDD/BDD 组。试图进行心理转换。现在我一直在测试之前编写业务逻辑。
在我的一个 Rails 模型中,我实现了一个复杂的算法。该实现可以被认为是一对嵌套循环,其中包含来自同一模型的大量方法调用。
这些方法中的大多数采用最初在循环中创建的复杂散列,对其进行修改并将其传递给循环中的另一个方法,然后再对其进行处理,直到我们得到最终的答案散列。
我应该如何对我的方法进行单元测试?
我还没有加入 TDD/BDD 组。试图进行心理转换。现在我一直在测试之前编写业务逻辑。
在我的一个 Rails 模型中,我实现了一个复杂的算法。该实现可以被认为是一对嵌套循环,其中包含来自同一模型的大量方法调用。
这些方法中的大多数采用最初在循环中创建的复杂散列,对其进行修改并将其传递给循环中的另一个方法,然后再对其进行处理,直到我们得到最终的答案散列。
我应该如何对我的方法进行单元测试?
最佳实践建议您测试边界而不是内部方法调用。
测试一个类的内部工作往往会导致脆弱的测试,即使最终结果是你想要的。
在这方面,最好根据预期输出测试输入,并避免测试它是如何到达输出的。
Sandi Metz 在这里就这个主题进行了精彩的演讲http://vimeo.com/48106365