假设我使用TDD来创建一个A类.在完成并有一个“绿色”栏后,我决定使用一些重构工具从A类中仅使用静态方法提取一些B类.我现在已经对A类和B类进行了全面的单元测试,但只通过A类的测试类.我现在还应该创建一个特定于B类功能的测试类,即使这会重复测试吗?
一如既往,这取决于您的背景.你在乎什么?
原文链接:https://www.f2er.com/javaschema/281691.html整体行为
如果您正在构建一个供内部使用的系统,甚至是一个公共(Web)服务,您所运送的软件就是整个系统,那么您不必过多关注单个类.如果您正在构建系统,请测试系统.
只要它被测试覆盖,您就知道您的系统行为正确.但是,您可能会遇到这样的情况:几个月之后,您意识到您不再需要原始A类,因此您将其删除并进行相应的单元测试.这可能导致B的测试覆盖率下降,因此关注代码覆盖率趋势可能是个好主意.
单位行为
如果您正在构建(类)库或框架,那么您将每个公共类作为产品的一部分进行发布.如果您的库中有多个用户,则需要开始考虑如何避免更改.
避免破坏变化的最有效方法之一是通过单元测试覆盖每个类.只要您don’t change the tests,您就知道如果所有测试都是绿色的话,不太可能发生重大变化.但是,这需要您测试所有公共类和成员.
因此,如果您将B提取到公共类,它现在是其他消费者可能依赖的类,如果您更改它将是一个重大变化.因此,您应该用新测试来覆盖它.如果您正在构建一个单元,那么请测试该单元.