gpt4 book ai didi

unit-testing - 在 LARGE 项目上启动 UnitTesting

转载 作者:行者123 更新时间:2023-12-03 12:45:55 25 4
gpt4 key购买 nike

任何人都可以推荐一些关于如何解决开始对大型现有代码库进行单元测试的问题的最佳实践吗?
我目前面临的问题包括:

  • 庞大的代码库
  • 零现有单元测试
  • 类之间的高耦合
  • 复杂的 OM(在这里我能做的不多——这是一个复杂的业务领域)
  • 缺乏编写单元测试/TDD 的经验
  • 数据库依赖
  • 外部源依赖项(Web 服务、WCF 服务、NetBIOS 等)

  • 显然,我知道我应该从重构代码开始,以减少耦合,并提高可测试性。然而,如果没有 UnitTests(鸡和蛋,有人知道吗?),进行这样的重构是有风险的。

    顺便说一句,您是否建议在域类或层类(日志记录、实用程序等)上开始重构和编写测试?

    最佳答案

    首先,我赞同 Jeffrey Frederick 给出的“有效地使用遗留代码”的建议。

    正如您在问题中所述,您无法更改代码,因为您目前没有可用于检测回归的单元测试,并且您无法添加单元测试,因为您的代码库不可单元测试。在这种情况下,您可以创建 characterization tests :端到端自动测试,可帮助您检测软件外部行为的变化。一旦这些到位,您就可以开始慢慢修改代码。

    然而,测试你庞大的代码库是一项巨大的工作,风险很高,而且你可能会烧毁这样做的团队,因为他们必须在测试覆盖率方面付出巨大的努力,但返回却很低。对整个代码库进行测试是一项永无止境的工作。

    相反,从代码库中开发新功能 ,以免妨碍你。新代码经过全面测试后,将其集成到代码库中。

    每次修复代码库中的问题时,也要尝试创建单元测试。第一次会很困难,但是一旦您准备好设置一些单元测试环境,它就会变得更容易。

    关于unit-testing - 在 LARGE 项目上启动 UnitTesting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/463593/

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