如何确定现有类是否可以进行单元测试?

zr.*_*zr. 8 c++ unit-testing

最近,我获得了一些c ++代码的所有权.我将维护此代码,并在以后添加新功能.我知道很多人说通常不值得在现有代码中添加单元测试,但我还是想添加一些至少部分覆盖代码的测试.特别是,我想添加重现我修复的错误的测试.

有些类的构造具有一些相当复杂的状态,这使得单元测试变得更加困难.

我也愿意重构代码以便更容易测试.

您是否有任何关于指导原则的好文章有助于识别更容易进行单元测试的类?你对自己有什么建议吗?

whe*_*ies 6

虽然Martin Fowler关于重构的书是一个信息宝库,但为什么不看看" 有效地使用遗留代码".

此外,如果你要处理那些有大量全局变量或大量状态转换的类,我会进行大量的集成检查.分离出与您正在重构的代码交互的代码,以确保按照接收顺序的所有预期输入继续产生相同的输出.这很关键,因为它很容易"修复"可能已在其他地方解决的微妙错误.

也做笔记.如果你确实发现另一个函数/类需要并且正确处理的错误,你会想要同时更改它们.除非你保持完整的记录,否则这很困难.