Fin*_*las 6 tdd unit-testing dependency-injection
假设您有一个通过其所有当前单元测试的类.
如果您要添加或提取一些方法/引入一个新类,然后使用组合来包含相同的功能,那么新类需要测试吗?
我是否应该这样做,所以任何建议都会很好.
编辑:
假设我应该添加我使用DI(依赖注入),因此我应该注入新类吗?
不是在TDD的背景下,不,恕我直言.现有的测试证明了关于类的存在的一切.如果您需要向类添加行为,那么就是引入测试的时候了.
话虽这么说,它可能会使您的代码和测试更清晰,将测试移动到与您所创建的新类相关的类中.这在很大程度上取决于具体情况.
编辑:在你编辑之后,我会说这是移动一些现有测试(或现有测试的一部分)的好例子.如果这个类是如此分离以至于它需要注入,那么听起来现有的测试可能不会明显地覆盖它,如果它们保持原样.
最初,不,他们没有必要.如果你有完美的覆盖率,提取课程并且什么也没做,你仍然会有完美的覆盖(并且那些测试将证实提取确实是纯粹的重构).
但最终 - 可能很快 - 是的.提取的类可能在其原始上下文之外使用,并且您希望使用特定于新类的测试来约束其行为,以便新上下文的更改不会无意中影响原始调用方的行为.当然,原始测试仍然可以揭示这一点,但良好的单元测试直接指向有问题的单元,并且原始测试现在已经被删除了一步.
将新测试作为新提取的类的可执行文档也很好.