在我看来,每个c ++类代码文件都被编译成自己的obj文件。 其他头文件看起来像是“控制反转”的接口要求。
那么,可以将c ++ obj文件链接到单元测试并使用这些头文件的模拟进行测试而不使用其他obj文件项目吗?
答案 0 :(得分:1)
免责声明,我在Typemock工作。
使用Typemock Isolator ++,您可以直接从生产代码中模拟几乎所有内容,方法是将dll或exe链接到单元测试项目。您也可以使用标头文件。 我们对c#/ .net项目有类似的环境,两者都非常容易使用。
拿一个look!
答案 1 :(得分:0)
理论上,是的,但建立起来将是一个巨大的痛苦。当您创建目标文件时,您承诺某个环境可用于生成的代码存在。尝试在没有该环境的情况下使用它将很困难;您需要提供至少足够的内容以允许满足所有链接时依赖性。
对每个目标文件执行此操作将需要做很多工作,然后在整个程序中添加某种测试装置要做得更多。
BTW,每个类都有自己的目标文件。对象文件对应于翻译单元,并包含变量,函数,类等的混合,如果启用了链接时代码生成,它甚至可能不是机器代码,而是一些中间表示。