我最近进入了单元测试嵌入式 C 代码。我想测试与所有其他模块完全隔离的每个模块。这种方法要求我模拟(或“伪造”)模块所做的所有依赖项和外部调用。
这样做,我最终会得到同一个函数的多个定义——所有的假货都有相同的标识符。
我相信避免有多个定义的最常见方法是为每个测试编译一个二进制文件——而不是为所有测试编译一个大程序。
然而,这带来了新的困难。我需要为每个被测模块提供一个 main() 函数。此外,每个程序现在都打印自己的摘要,而不是一个总测试摘要。哦,设置构建环境来执行此操作非常乏味......
很可能有一种聪明的方法可以做到这一点。 它是如何正确完成的?