将TDD回溯应用到C#代码库的最佳选择
我有一个由5个C#库组成的现有框架,该框架自2006年以来使用得很好,并且是我大多数项目的主要代码库.我公司希望出于软件质量的原因推出TDD;通过许多教程和阅读理论,我了解TDD的好处. 时间不是无限的我需要为实际的方法制定计划.据我所知,我看到的选项是: A)可以使用一个测试项目来重叠来自所有5个库组件的对象.一系列高级测试可能是最初被视为非常大的软件库的起点. B)5个库组件中的每一个的测试项目.这些项目将在最低级别测试功能,与其他库组件隔离. C)由于代码被广泛认为有效,因此只需对错误修复或新功能添加单元测试.使用重现错误的步骤编写一个测试,该测试在包含错误的逻辑上失败.然后重新计算代码,直到测试通过.现在您可以确信错误已得到修复,并且以后也不会在循环中引入 无论选择哪个选项,都可能需要“Mocking”来替换外部依赖项,例如: >数据库 如果有人有任何更多的输入,这将是非常有帮助的. 当然,这些测试运行得非常缓慢;但六年后我们仍然连续运行所有这些(现在分布在八台不同的机器上),因为它们捕获了我们仍然没有进行单元测试的东西. 一旦我们有了一个不错的集成测试基础,我们花了一些时间在系统的高流量部分(你的选项B)中添加更精细的测试.我们有时间这样做,因为我们的代码质量很差. 一旦我们将质量提高到一定的门槛,他们就开始要求我们再做一次真正的工作.所以我们选择了为新代码编写测试的节奏(你的选项C).此外,如果我们需要对尚未进行单元测试的现有代码进行更改,我们可能会花一些时间在开始进行更改之前用测试覆盖现有功能. 您的所有方法都有其优点,但随着时间的推移,您获得测试覆盖率,相对收益将会发生变化.对于我们的代码库,我认为我们的策略很好;集成测试将有助于捕获您在尝试破坏依赖项以添加单元测试时所犯的任何错误. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |