Unit testing 中断单元测试

Unit testing 中断单元测试,unit-testing,Unit Testing,我们的项目是在敏捷环境中进行的,在敏捷环境中,需求在每一个冲刺阶段都会不断变化。令人恼火的是,由于需求变化,单元测试一直失败。现在修复和维护它们需要更长的时间 一般来说,你有什么建议吗?对于这种情况,哪种方法更好?提前谢谢 这是一个常见的问题,与维护单元测试的决心有关 您提到当需求发生变化时测试会中断,所以我假设这意味着您会更新代码以满足不断变化的需求,但您不会同时更新测试 完全致力于可重复单元测试好处的开发方法总是在代码更改的同时更新单元测试代码。如果没有,如何重新测试代码更改,或者如何证明代

我们的项目是在敏捷环境中进行的,在敏捷环境中,需求在每一个冲刺阶段都会不断变化。令人恼火的是,由于需求变化,单元测试一直失败。现在修复和维护它们需要更长的时间


一般来说,你有什么建议吗?对于这种情况,哪种方法更好?提前谢谢

这是一个常见的问题,与维护单元测试的决心有关

您提到当需求发生变化时测试会中断,所以我假设这意味着您会更新代码以满足不断变化的需求,但您不会同时更新测试

完全致力于可重复单元测试好处的开发方法总是在代码更改的同时更新单元测试代码。如果没有,如何重新测试代码更改,或者如何证明代码更改有效

如果您不致力于在代码更改的同时维护单元测试,那么您最好接受这一事实,并在代码更改时立即丢弃它们,因为在这一点上,正如您所发现的,测试变得毫无用处


这是一个常见的问题,也是许多项目难以解决的问题。测试在最初编写时是否只编写一次以测试代码,但在该时间点之后将被丢弃,或者在代码更改时始终保持测试?当然,这会增加维护测试的工作量,但从长远来看,您可以从拥有一套可重复测试中获益,您可以随时运行这些测试,以测试代码在任何代码更改之前和之后是否按预期工作。

为什么测试会失败?是因为他们正在测试旧的需求吗?如果这些都失败了,这不是一件好事吗?如果需求改变,那么测试需要改变,然后代码需要改变,这样测试才能通过。如果你不知道哪些部分被破坏了,你会更喜欢吗?谢谢,伙计们。你的评论都是有效的。不断修改测试,尤其是再次重新创建所有模拟对象,这是令人沮丧和耗时的。我想说的是,您应该测试单个对象的行为,即使需求改变了它,但通常意味着更改您使用的对象,如果你经常打破一切来做出改变,你应该看看设计,也看看你正在测试什么