gpt4 book ai didi

CPPUnit 访问定义在 c 文件中

转载 作者:行者123 更新时间:2023-11-30 18:06:56 25 4
gpt4 key购买 nike

我正在使用 CPPUnit 对 C 代码进行一些单元测试。

在要测试的代码中,有一些定义在 c 文件中,而不是在 h 文件中。因此无法从代码中的其他位置访问它们。许多定义用于设置数组的大小。

当我进行单元测试时,我想让它们尽可能动态,这意味着当定义在最终发布之前发生更改时它们仍然可以工作。我已经做了一些循环和东西来使用数组来遍历函数,这样我就可以根据数组中的条目进行多次测试等。但到目前为止,我在单元测试代码中使用了定义的副本。因此,如果要测试的代码中更改了定义,则单元测试代码中的定义不会更改。

所以我的主要问题是,是否有一些技巧可以仅用于单元测试目的,以某种方式使定义成为全局的或任何东西,而不改变原始源代码只是为了适应单元测试的使用。也许是编译器设置? (我使用的是 Visual Studio 2008)。

最佳答案

不,您无法在 .c 文件中将 #define 设置为“全局”,以便将其应用于其他 C 文件,就像您无法在不更改源代码的情况下将静态函数设置为全局一样。实现此目的的方法是更改​​源代码,将这些 #define 放在它们所属的位置,即定义接口(interface)的头文件中。

===编辑===

归功于 Radek S 的 #include .c 文件的想法。这具有有限的适用性,但应该适用于该文件中函数的单元测试,前提是在创建测试可执行文件时未编译原始文件。

关于CPPUnit 访问定义在 c 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5243850/

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