在TDD的重构阶段,一次性破坏多个现有测试是否可以。例如更改类的构造函数并修改使用该类的测试。
测试断言测试代码的行为,但是测试的实现排列/操作实际上是测试代码本身。
我猜为了避免多个测试被破坏,单元测试应该尽可能DRY,意味着如果构造函数发生更改,则只需要进行单个更新(在可能的情况下)。
测试断言测试代码的行为,但是测试的实现排列/操作实际上是测试代码本身。
我猜为了避免多个测试被破坏,单元测试应该尽可能DRY,意味着如果构造函数发生更改,则只需要进行单个更新(在可能的情况下)。
new
。TestDataFactory
。它了解对象模型的一些信息,因此您可以向其请求Foo
的实例,它会返回一个在大多数字段中具有许多有用测试数据的实例。var sut = CreateSUT();
var result = sut.MethodUderTest();
Assert.IsTrue(result);
这种情况经常发生在我身上,无论是构造函数还是其他在多个地方调用的东西。我并不认为这是一件大事,通常我只会纠正任何意外失败的测试,然后继续进行我之前的测试。
有些人已经考虑到了避免这种情况的技术,尤其是针对长时间重构的情况,你不想花几个小时处于不能编译的状态中。例如,可以参考 Joshua Kerievsky 提出的 "Limited Red" 的概念。