c# - 将单元测试添加到不是为它设计的代码

标签 c# unit-testing

在工作中,我们有一个三层产品。有一个用户使用的客户端应用程序,它从服务器查询数据,服务器将这些请求转发到 SQL 数据库。我们不允许客户端直接访问 SQL 服务器。

客户端产品是我想要进行单元测试的产品,但它有超过 120 万行的 C# 代码并且是一个非常古老的产品。它在设计时并未考虑到单元测试,并且该产品的主要开发人员通常反对单元测试,主要是因为风险与返回问题,以及需要如何重新设计以减少需要完成的模拟量.这些核心的低级客户端库和对象的重新设计也引起了他们的关注。

我的哲学是永远不要忽视单元测试(因为我们总是太忙了,而且它总是看起来有风险,因此永远不会永远完成)并采用迭代方法来实现单元测试。

我很想听听针对这种情况的解决方案。我相信你们中的许多人都遇到过必须将单元测试添加到现有基础架构中的情况。如何在不影响生产力和发布周期的情况下将单元测试迭代添加到代码库中?

最佳答案

在这种情况下(事实上,我们一直在经历从旧 Web 表单到 MVC 转换的相同过程)就是简单地开始测试新代码。随着时间的推移,旧代码最终将被重写或重构。

在"new"代码被视为有效之前,必须对其进行单元测试和代码审查。随着时间的推移,最终您会发现越来越多的解决方案正在接受测试,并且越来越少的旧代码被调用。

关于c# - 将单元测试添加到不是为它设计的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5967169/

相关文章:

unit-testing - 单元测试中的 "bad"属性是什么?

java - 单元测试中的初始化

c# - 无法上传到特定文件夹并出现 503 错误

c# - Visual Studio 2012 Fakes - 如何验证调用的方法?

c# - 在c#中调用mysql存储过程

unit-testing - 单元测试 EJB 3.1

api - Laravel 6 单元测试响应 401

c# - 如何使用 ActionResult<T> 进行单元测试?

c# - EMGU CV使用C#进行实时眼动跟踪

c# - 将 IQueryable 与 IEnumerable 连接成 IQueryable