我一直在研究的产品在过去六年中一直处于开发阶段.它最初是作为一个通用的数据输入门户,进入了一个非常复杂的 WPF /部分遗留应用程序.该系统已经开发了多年,没有单独的单元测试
我一直在尝试为某些模块编写单元测试.但是我不知道Mock是什么,如何设置我的测试夹具以及最终要测试什么,因为随便看一眼这些方法并没有显示出它的意图.此外,我注意到代码并没有考虑到特定的方法.
鉴于这种情况,我想知道Stackoverflow的好人是否可以为我提供一些如何挽救这种情况的建议.我听说过“使用遗留代码”一书,对这种情况有一些说法,但我正在考虑从技术堆栈中遇到类似情况的个人那里得到一些指示(C#,VB,C,.NET 3.5) ,WCF,SQL Server 2005).
在我看来,最好的方法是首先使用集成测试“稳定”当前的代码功能.尝试创建具有以后不太可能更改的起点的测试.使用集成测试,您可以放心,重构后来进行单元测试的重构不会破坏任何东西.下一步是对代码进行单元测试.如果你可以自由地重构代码,你可以开始将逻辑分离到类(例如视图层中的额外逻辑)并向它们添加单元测试.使用此过程,您还可以更好地了解产品的代码.
非常推荐阅读使用遗留代码,您将遇到的许多问题已经有解决方案:)
单元测试遗留代码有时可能是一个挑战,具体取决于现有代码以及您可以更改代码的程度.您可以使用某些工具,例如编写集成测试,您可以使用White框架自动化GUI.您可以用来编写单元测试而不强制更改代码的另一个工具是Typemock Isolator(免责声明 – 我在Typemock工作),它允许伪造大多数依赖项而不更改生产代码.有许多其他工具可以简化过程,尝试找到并充分利用它们:)