TDD:重构新 类

TDD: Refactoring in new classes

我有一个 class 经过多次红绿循环测试。 我看到 class 太大了,需要完成不同的任务。

现在我想重构它...重构后我有 3 个 classes 并且仍然是 100% 的覆盖率并且所有测试仍然是绿色的。

但问题是,我在 "old big class" 的测试中测试了新的两个 class,我现在应该拆分测试吗?或者我应该在重构 classes 中的代码之前为每个 class 编写额外的测试吗?

should i split the tests now??

"refactoring" 的快速暗示——您的测试不需要更改。 public API 和您的实现的可观察行为没有改变。您刚刚在实现中创建了一些新的模块边界。

(如果您所做的更改迫使您修改现有测试,那么您所做的 activity 不是 "refactoring")。

由于 public API 没有改变,现有的测试仍然有价值 - 它们描述了原始 API 所需的行为。所以你不应该"split"那些测试。

如果您在重构期间创建的新 类 将被提升到 public API,那么您应该为新 public 引入新测试API.

您对原始 API 的现有测试将保持不变,直到您宣布 API 的生命终结、弃用它并达到生命终结期限为止。届时,您可以删除旧 API.

的测试