是否有任何模拟框架可以模拟std :: ifstream和其他I / O库?

时间:2019-03-20 07:56:35

标签: c++ testing mocking

我在一个非常古老的C ++项目上工作,该项目具有需要模拟的巨大数据库。 我正在尝试模拟ifstream库以测试对文件的控制,问题是我无法更改遗留代码,因此我很难找到无需更改任何代码即可进行模拟的能力 预先感谢

1 个答案:

答案 0 :(得分:1)

模拟使用多态性(实现给定的接口),因此有两种选择:

    当库提供选项时,
  • 使用动态多态性。对于ifstream,情况并非如此。

  • 使用静态多态性(模板),这意味着旧版库提供了使用if流以外的其他选项。

我认为您的旧版应用程序不提供任何这些选项,因此您现在必须在没有模拟的情况下对其进行测试。