嘲弄存根深刻的遗留物

时间:2012-06-08 08:47:30

标签: mocking tdd stub

我不确定我是否仍然可以“单元”测试遗留代码,例如此...

我的大多数代码都是将东西放在A类的对象中,其中包含许多其他对象,就像树一样。在这棵树的叶子上是一个由OR映射数据库行支持的数据项对象...创建一个真正的classA对象是一项非常重要的任务,因为它涉及创建该树的所有节点。我甚至不能看到A中一个级别以外的类。

当classAobj为状态X时,我的代码需要运行,此代码将classAobj移至状态Y

将classAobj变为状态X的最佳方法是什么?

我听说过Mock对象和Stub对象,但我不知道如何处理任何有很深期望的东西,如何在需要所有树时创建存根?

如何发现classAobj需要运行的其他对象?

1 个答案:

答案 0 :(得分:0)

将单元测试添加到不是为单元测试而设计的遗留代码是非常困难的,当你重构整个对象树时,你最终可能会编写一些真正想要垃圾的测试。

我会考虑编写集成测试,因为这样可以让您获得最大的重构自由,但是设置成本很高。