将单元测试添加到遗留代码[关闭]

2024-01-02

您是否曾经在事后向遗留代码中添加过单元测试?代码有多复杂?存根和模拟所有内容有多困难?最终的结果值得吗?


我发现最好的方法是逐步添加单元测试,而不是直接跳出来说我们现在将对应用程序进行单元测试。

因此,如果您要接触代码以进行错误修复或重构,请首先编写单元测试。对于错误,单元测试将有助于证明问题出在哪里,因为您可以复制它。

如果重构,你会想要编写单元测试,但你可能会发现测试是不可能编写的,所以你可能需要找到一个高层,调用将要重构的函数,并对那部分进行单元测试。然后,当您重构攻击性功能时,编写测试,以便确保它按预期运行。

没有简单的方法可以做到这一点。

这个问题可能有助于提供更多建议。如何将单元测试引入大型遗留 (C/C++) 代码库? https://stackoverflow.com/questions/748503/how-do-you-introduce-unit-testing-into-a-large-legacy-c-c-codebase

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将单元测试添加到遗留代码[关闭] 的相关文章

  • Django:出于测试目的阻止互联网连接

    我想确保我的单元测试不会尝试连接到互联网 有没有办法在连接时引发异常 有一个类似的问题Python 出于测试目的阻止网络连接 https stackoverflow com questions 18601828 python block n
  • Scala 的代码覆盖率工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用文件 IO 的单元测试方法

    我正在努力养成编写单元测试的习惯 我之前写过一些 但它们通常都很基础 我想开始转向 TDD 因为我想提高质量我的代码 设计和结构 减少耦合 同时希望减少可测试构建的回归数量 我从一个相对简单的项目开始 生成的程序监视一个文件夹 然后对该文件
  • GoogleTest 枚举类的测试错误打印

    我正在使用 GoogleTest 版本 1 7 0 来测试我的 C 应用程序 我有一个枚举定义如下 namespace MyNamespace enum class MyEnum MyEnumValue MyEnumValue2 Googl
  • java.lang.IllegalAccessError:预验证类中的类引用在运行测试项目时解析为意外实现?

    在实施项目工作正常之后 我使用第三方库 zxing 实施了项目 然后在我编写了一个测试项目对我的项目进行单元测试之后 运行测试项目后 主项目 类及其方法没有给出任何信息错误 但如果在主项目的该方法中使用任何 zxing 框架类 则会在运行时
  • Spring @ContextConfiguration

    我正在运行下一个测试 import static org junit Assert assertEquals import org junit Test import org junit runner RunWith import org
  • 如何用 Jest 模拟 Sequelize?

    我正在尝试为调用 Sequelize 来创建数据库的代码编写单元测试 我一生都无法弄清楚如何模拟对 Sequelize 的调用 以便我可以断言他们已经正确创建了数据库表 我点击 Sequelize 的代码如下 import Sequeliz
  • 我的单元测试 ReSharper 装订线图标未显示

    我已经安装了 ReSharper 4 1 和 Gallio 3 0 5 但没有获得单元测试的装订线图标 测试似乎在测试资源管理器中运行良好 但代码中的测试旁边没有图标 可能是什么原因造成的 我之前安装了 MbUnit 2 4 ReSharp
  • 使用 Moq 测试接受委托的方法

    我的代码正在使用一个实现这样的接口的组件 public interface IFoo void DoSomething string p1 void DoSomething string p1 Action
  • 如何在 Java Spring 中模拟 RestTemplate?

    public class ServiceTest Mock RestTemplate restTemplate new RestTemplate InjectMocks Service service new Service Respons
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • 寻找网站测试自动化的方法

    我们开发定制调查网站 我正在寻找一种方法来自动化这些网站的模式测试 调查通常包含许多复杂的规则和分支 这些规则和分支也会根据项目的响应方式而触发 所有调查在发布给客户之前都经过严格测试 此测试需要大量的手动工作 我想了解一些可以通过回答问题
  • 单元测试报告的 XML 格式规范(DTD、XSD..)

    许多工具为单元测试报告生成和使用相同的 XML 文件格式 例子 source http junitpdfreport cvs sourceforge net junitpdfreport src resources examples tes
  • FakeAsync/tick (Async/whenStable) 与 detectorChanges()

    您能帮我区分这两件事吗 根据我的理解 如果你只使用 observable 你可以使用 detectorChanges 因此 您可以直接更改组件属性或监视服务调用并返回可观察的值 然后调用 detectorChanges 更改将在 html
  • 在 Visual Studio Code 中调试 Go 测试

    在我的 Windows 计算机上 我安装了 Visual Studio Code 要手动运行测试 我进入控制台到项目文件夹并输入 go test main test go 它工作完美 但我遇到一种情况 我需要调试我的测试以了解发生了什么 为
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • vue-test-utils:如何测试 Mounted() 生命周期挂钩中的逻辑(使用 vuex)?

    我正在尝试为 Vue 中的逻辑编写一个单元测试mounted 生命周期钩子 但运气不太好 问题似乎是这样的mounted 使用 vue test utils 安装组件时永远不会被调用mount 这是我要测试的 Vue 组件
  • 如何对私有方法进行单元测试?

    我正在构建一个类库 它将有一些公共和私有方法 我希望能够对私有方法进行单元测试 主要是在开发时 但它也可能对未来的重构有用 这样做的正确方法是什么 如果您想对私有方法进行单元测试 则可能会出现问题 单元测试 一般来说 旨在测试类的接口 即其
  • 单元测试、集成测试还是设计中的问题?

    我编写了我的第一个单元测试 我认为它过于依赖其他模块 我不确定是否是因为 这是一个复杂的测试 我实际上已经编写了集成测试或 我的设计有问题 我首先要说的是 虽然我有大约 4 年的开发经验 但我从未学过 也没有人教过自动化测试 我刚刚使用 H

随机推荐

  • 如何在不加载完整文件的情况下检查文件是否是图像?有没有图像头读取库?

    edit 抱歉 我想我的问题很模糊 我想要一种方法来检查文件是否not图像而不浪费时间加载整个图像 因为这样我就可以稍后完成其余的加载 我不想只检查文件扩展名 该应用程序仅查看图像 通过 检查有效性 我的意思是 检测并跳过目录中的非图像文件
  • MATLAB 环境调整 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 您如何调整 MATLAB 环境以更好地满足您的需求 每个答案进行一次调整 我运行 格式紧凑 来删除所有那些令人沮丧的空白行 这些空白行
  • 无法加载文件或程序集“System.IdentityModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一

    我是 mvc 新手 我刚刚安装了 Visual studio 15 当我创建一个 mvc 项目并运行它时 无需任何修改 它给了我上述错误 我在另一台电脑上做了同样的事情 它可以工作 但在我的系统上它给了我错误 搜索解决方案但找不到任何具体的
  • 对移动日期选择器的任何建议[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • jQuery Ui:无法从 Div 中拖动元素并溢出

    我在 div 中有一个简单的 UL 并将溢出设置为自动和固定高度 每个 LI 都可以通过 jQuery 拖动 问题是我无法将它们从 div 中拖动 当拖动到边界时它们会消失 我已经查看了这个问题及其答案 但这里的解决方案似乎对我不起作用 设
  • 扩展接口以包含日期类型

    我需要扩展 Typescript 中的接口以包含日期类型 我尝试过以下方法 interface WithDate key string Date 但当我尝试延长WithDate 我收到错误 interface Person extends
  • 修改 std::set 中的元素

    我有以下代码 int main set
  • 过滤特定行

    我目前正在尝试从日志文件中过滤特定行 我在日志文件中的行具有以下模式 8 05 13 14 24 55 468 RuntimeErrorI E LaError 8 05 13 14 24 55 468 AbcdEfg W SomeWarni
  • 使用 django 为一个模型的属性使用多个输入字段

    In models py I have class myModel period models CharField max length 100 blank True the period应该包含类似的内容 DD HH MM SS 在 HT
  • SetWindowPos 返回拒绝访问

    我正在构建可帮助拍摄所选窗口的屏幕截图的应用程序 我在选定的窗口上显示半透明表单 在本例中我使用的是 winapi DllImport user32 dll SetLastError true public static extern bo
  • 是否有可能在 WPF / Touch 应用程序中弹出一个忽略 MenuDropAlignment 的窗口?

    作为一点背景知识 Windows 有一个针对触摸 平板电脑的功能 它可以根据您的 用手习惯 来移动弹出窗口 菜单的位置 以防止菜单出现在您的手下 从本质上讲 如果您设置为 右手 连接触摸设备后似乎默认为右手 您打开的每个弹出窗口都会被人为地
  • javascript 中用于文件路径验证的正则表达式

    我似乎找不到可以测试以下情况的 JavaScript 正则表达式 c temp D 目录名 testing john desktop tempdir 你可以看到我要做什么 我只需要它来验证文件路径 但我发现的所有表达式似乎都不适用于 Jav
  • 保护对 Kafka Connect REST API 的访问

    Kafka Connect 的 REST API 不安全且未经过身份验证 由于它未经身份验证 因此任何人都可以轻松访问连接器或任务的配置 由于这些配置可能包含如何访问源系统 在 SourceConnector 的情况下 和目标系统 在 Si
  • Windows 中哪个进程是用户特定的?

    我想知道 Windows 中的哪个进程是特定于用户的 我的意思是它是为每个用户登录创建的 我尝试了 explorer exe 但是当您切换用户并登录新帐户时 它会在我的代码中显示旧的登录名 基本上我只需要记录在应用程序中登录的用户 如果您需
  • 在 Outlook 2016 中添加上下文菜单项

    在 Outlook 2007 中 当用户右键单击邮件项目时 以下代码将菜单项添加到上下文菜单中 然而在 Outlook 2016 中这不起作用 这段代码根本没有被执行 Sub Application ItemContextMenuDispl
  • Android,我看到堆在增长,但我希望它停止

    我看到我的堆不断增长 并且我知道它最终会在任何设备上崩溃 因为它一直在增长 Grow heap frag case 在整个日志中都可以看到 在我的手机上 当使用 32mb 时 应用程序就会崩溃 其他手机当然是 16mb 如果有那么少的资源运
  • 单击按钮即可更新 asp.net 表

    我是 ASP NET 的新手 遇到了一个非常愚蠢的问题 但我无法弄清楚 我有一个表单 由 page load 上的数据库数据填充 用户更新表单的输入文本并单击 更新 按钮 它会更新 但会使用旧数据进行更新 为什么要用旧数据更新它 这是asp
  • 轨道 HAML 表格

    我目前正在尝试将 ERB 布局转换为 HAML 这是我不断收到的错误 index html haml 18 syntax error unexpected n hamlout format 这是 HAML 页面 row fluid span
  • 如何配置log4j只保留最近7天的日志文件?

    我在使用多个 Java 应用程序时遇到以下日志记录问题log4j用于记录 我希望日志文件每天轮换 例如 log 2010 09 10 log 2010 09 09 log 2010 09 08 log 2010 09 07 log 2010
  • 将单元测试添加到遗留代码[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您是否曾经在事后向遗留代码中添加过单元测试 代码有多复杂 存根和模拟所有内容有多困难 最终的结果值得吗 我发现最好的方法是逐步添加单元测试 而不