gpt4 book ai didi

c++ - 全局变量影响单元测试结果的问题

转载 作者:行者123 更新时间:2023-11-28 04:38:15 25 4
gpt4 key购买 nike

我在 Visual Studio 2017 中为嵌入式软件创建了一个单元测试,其中包含 native 单元测试项目,它是用C 代码编写的。该软件有许多参数是全局变量,可从整个系统访问。

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

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

最佳答案

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

所以你会在每次测试开始时调用一个函数:

 SetGlobals( struct { a = ....}), 

在其中传入一个结构,其中包含您关心的所有变量。

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

关于c++ - 全局变量影响单元测试结果的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50816602/

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