gpt4 book ai didi

c# - 对 'legacy' WPF 应用程序进行单元测试

转载 作者:行者123 更新时间:2023-11-30 14:19:31 25 4
gpt4 key购买 nike

我一直致力于开发的产品在过去六年中一直在开发中。它最初是作为一个通用数据输入门户进入极其复杂的 WPF 部件/部件遗留应用程序。该系统已经开发了这么多年,却没有进行任何单元测试。现在,已经提出了一个全面的单元测试框架的要点。我最近被招募从事该产品的工作,并负责按顺序进行“测试”。由于在过去六年中从事该产品工作的团队采用了“敏捷”,因此该项目缺少任何业务规则文档或任何设计文档。

我一直在尝试为一些模块编写单元测试。但是我不确定要模拟什么,如何设置我的测试夹具以及最终要测试什么,因为随便看一眼这些方法并不能揭示它的意图。此外,我注意到代码的开发并未考虑特定的方法。

鉴于这种情况,我想知道 Stackoverflow 的好心人是否可以为我提供一些关于如何挽救这种情况的建议。我听说过“使用遗留代码”这本书对这种一般情况有话要说,但我正在考虑从在技术堆栈(C#、VB、C++、.NET 3.5)中遇到过类似情况的个人那里得到一些指示,WCF,SQL Server 2005).

最佳答案

在我看来,最好的方法是首先使用集成测试“稳定”当前代码的功能。尝试创建具有起点的测试,该起点以后不太可能改变。使用集成测试,您可以确信稍后为单元测试进行的重构不会破坏任何东西。

下一步是对代码进行单元测试。如果您可以自由地重构代码,您可以开始将逻辑分离到类(例如, View 层中的额外逻辑)并向它们添加单元测试。使用此过程,您还可以更好地了解产品代码。

强烈推荐阅读Working with Legacy Code,您将要遇到的许多问题已经有了解决方案:)

有时,对遗留代码进行单元测试可能是一项挑战,具体取决于现有代码以及您可以更改代码的程度。您可以使用一些工具,例如编写集成测试,您可以使用 White框架来自动化 GUI。另一个可以用来编写单元测试而不强制对代码进行重大更改的工具是 Typemock Isolator (免责声明 - 我在 Typemock 工作),它允许在不更改生产代码的情况下伪造大部分依赖项。还有许多其他工具可以简化这个过程,尝试找到并充分利用它们:)

关于c# - 对 'legacy' WPF 应用程序进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2567611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com