首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >影响单元测试结果的全局变量问题

影响单元测试结果的全局变量问题
EN

Stack Overflow用户
提问于 2018-06-12 11:56:21
回答 2查看 778关注 0票数 0

我在VisualStudio2017中用原生单元测试项目嵌入式软件创建了一个单元测试,它是用C代码编写的。该软件有许多参数是global-variables,,可以从整个系统访问。

这会导致单元测试(例如燃料监控)也影响发动机控制单元测试的问题。如果我单独运行单元测试,它将按预期工作。

因此,我的问题是,在测试在方法之间运行时,是否有一种重新启动应用程序的简单方法?因此,我可以更好地控制哪些参数已经更改,而不需要担心添加了影响现有单元测试用例的新方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-12 12:00:45

处理这一问题的一种方法是在每个测试开始时都有一个设置阶段,将所有全局设置为预定值。

因此,您可以在每次测试开始时调用一个函数:

代码语言:javascript
复制
 SetGlobals( struct { a = ....}), 

在这里传递一个包含您所关心的所有变量的结构。

然后,每个测试都应该具有一致的行为,并且所有变量都将被重置以纠正测试之间的值。(当然,如果您尝试多线程测试运行程序,您仍然会遇到问题。)

票数 1
EN

Stack Overflow用户

发布于 2018-06-12 13:41:28

我假设您正在寻找不需要重新设计代码的解决方案。

管理此操作的一种方法是在调试模式下运行单元测试,方法是设置断点,以便在到达新方法时手动更改全局变量的值。

我之前在不同的上下文中使用了此方法,但是,我不知道您是否可以在调试模式下运行嵌入式应用程序。如果这样做,请记住重新编译应用程序后测试以删除-g参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50816602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档