0

我不确定我是否仍然知道如何“单元”测试这样的遗留代码......

我的大部分代码是从 A 类的对象中放置和删除东西,该对象内部有许多其他对象,依此类推,就像一棵树。在这棵树的叶子上是一个由 OR 映射的数据库行支持的数据项对象...创建一个真实的 classA 对象是一项不平凡的任务,因为它涉及创建这棵树的所有节点。我什至看不到 A 中超过一级的课程。

当 classAobj 为状态 X 时需要执行我的代码,并且此代码会将 classAobj 移动到状态 Y

让 classAobj 进入状态 X 的最佳方法是什么?

我听说过 Mock 对象和 Stub 对象,但不确定我将如何处理任何有深切期望的事情,以及当我需要所有树时如何创建存根?

您如何发现 classAobj 需要哪些其他对象才能运行?

4

1 回答 1

0

将单元测试添加到不是为单元测试而设计的遗留代码非常困难,并且您可能最终编写的测试真的只是想在稍后重构整个对象树时变得垃圾。

我会考虑编写集成测试,因为这将为您提供最大的重构自由度,但设置成本很高。

于 2012-06-18T12:24:14.280 回答