我正在处理一个程序化的C/C++项目,公共接口包括4个函数,每个函数都有相当复杂的任务。在同一个cpp
文件中声明了一些助手函数,它们位于一个未命名的命名空间中。使用的测试框架是GTest。
然而,一些这些助手函数变得足够复杂,需要它们自己的单元测试。通常,我会将这些助手函数重构为可测试的单元,但是项目要求所有内容都必须在同一个cpp
文件中,并且只能公开指定的函数。
有没有一种方法可以在最小化耦合的同时对助手函数进行单元测试,并尽可能地遵循项目要求?
我想到的一个可能的解决方案是使用宏将命名空间用于测试,而对于生产则不使用命名空间。但是,那似乎比我想象中的要混乱一些。