我不确定我是否仍然可以“单元”测试遗留代码,例如此...
我的大多数代码都是将东西放在A类的对象中,其中包含许多其他对象,就像树一样。在这棵树的叶子上是一个由OR映射数据库行支持的数据项对象...创建一个真正的classA对象是一项非常重要的任务,因为它涉及创建该树的所有节点。我甚至不能看到A中一个级别以外的类。
当classAobj为状态X时,我的代码需要运行,此代码将classAobj移至状态Y
将classAobj变为状态X的最佳方法是什么?
我听说过Mock对象和Stub对象,但我不知道如何处理任何有很深期望的东西,如何在需要所有树时创建存根?
如何发现classAobj需要运行的其他对象?
答案 0 :(得分:0)
将单元测试添加到不是为单元测试而设计的遗留代码是非常困难的,当你重构整个对象树时,你最终可能会编写一些真正想要垃圾的测试。
我会考虑编写集成测试,因为这样可以让您获得最大的重构自由,但是设置成本很高。