我已在Visual Studio 2017中为嵌入式软件创建了本机单元测试项目的单元测试,该 C代码。该软件有许多参数全局变量,可以从整个系统访问。
这会产生单元测试(例如燃料监控)也会影响发动机控制单元测试的问题。如果我单独进行单元测试,它会按预期工作。
所以我的问题是,当测试在方法之间运行时,是否有一种简单的方法可以重新启动应用程序?因此,我可以更好地控制哪些参数已更改,并且无需担心会影响现有单元测试用例的新方法。
答案 0 :(得分:1)
处理此问题的一种方法是在每个测试开始时设置一个设置阶段,将所有全局变量设置为预定值。
因此,您可以在每次测试开始时调用函数:
SetGlobals( struct { a = ....}),
你传入一个包含你关心的所有变量的结构。
然后每个测试应该具有一致的行为,并且所有变量都将重置为测试之间的正确值。 (当然,如果你尝试多线程测试运行器,你仍会遇到问题)
答案 1 :(得分:0)
我假设您正在寻找不需要重新设计代码的解决方案。
管理此方法的一种方法是在调试模式下运行单元测试,方法是设置断点,以便在到达新方法时手动更改全局变量的值。
我之前在不同的上下文中使用过这种方法,但是,我不知道你是否可以在嵌入式应用程序的调试模式下运行。如果你这样做,请记得在测试后重新编译应用程序以删除-g参数。