如何用很少的单位对代码进行单元测试

Zom*_*ies 9 unit-testing

如何为现有的和已经实现的代码编写单元测试,这些代码采用了程序实现而不是OOP实现.我们正在使用Java/Spring,但是对于不同的关注点没有很多不同的bean,它们都被混合到每个主要功能的一个大类中.(EG:我们为每个批处理作业提供了类/ bean,对于我们的DAO和一些util类型的bean,就是这样).

为了提供更多细节,需要测试的这些主要类大约是1k-2k行代码,他们使用的唯一依赖注入/ OOP是DAO和一些奇怪的实用程序.他们有大约1个公共方法,他们为他们共享的界面实现这些方法.

Tom*_*icz 7

从重构开始.现代IDE将允许您安全地重构,而不会破坏或更改代码语义.但你必须有意识地做到这一点并且要聪明.

从不与任何其他类的依赖关系的"外部"类开始.

第一步是尽可能多地提取方法.通常,当您发现一个包含大量空行/注释的巨大方法时,它们可以分隔代码块,因此它们非常适合提取.还应考虑循环,嵌套条件,长switches等.

一旦你有很多名称很好的方法环顾四周,并尝试通过上下移动来对它们进行分组.如果某些方法紧密耦合且逻辑依赖,则将它们提取到单独的类中.IDE将为您提供帮助.

该过程可以在每一层上重复多次.瞄准小的,有凝聚力的类,如果你不能命名它(例如你必须使用" And "来表达正在做什么方法/类),进一步提取.

当然你可以按原样测试它 - 我想每个可能的执行路径都可以通过不同的输入参数集来达到.但这将是调试的噩梦.