gpt4 book ai didi

c - 为什么要将单元测试文件与源文件分开?

转载 作者:太空宇宙 更新时间:2023-11-03 23:44:16 25 4
gpt4 key购买 nike

我们有一个要求,单元测试文件需要在项目构建中与源文件分开

这意味着我们不能为了测试源文件而这样做。

unit_testing_file.c

#include <source_file.c>

//testcases for testing source_file.c
...

我在这里看到的两个问题是:

  • 关于链接(测试文件和源文件编译后变成1个目标文件,而不是2个)

  • 两个文件中的变量范围现在变得相同。

这导致在测试文件中包含源文件可能是一种不好的做法。但这还不足以说服我。

我们不能在测试文件中包含源文件的幕后还有什么重要的原因吗?

最佳答案

这在测试 C 时很常见。这样做的原因是它允许您“穿透”C 的一些(相当弱的)抽象和数据隐藏。

例如,考虑一个具有static 变量的单元,您需要在测试中检查其值。您无法从不同的翻译单元(即 C 文件)访问它,因为它是 static,并且如果该单元(模块)没有变量的 getter,则您的测试无法检查

通过 #include 将被测 C 文件放入测试代码中,它们将编译为相同的翻译单元,您甚至可以访问 static 变量。

关于c - 为什么要将单元测试文件与源文件分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37985398/

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