我在一个非常古老的 C++ 项目上工作,它有一个巨大的数据库,我需要模拟。 我正在尝试模拟 ifstream 库以测试对文件的控制,问题是我无法更改遗留代码,因此我很难找到在不更改任何代码的情况下进行模拟的能力 提前致谢
最佳答案
Mocking 使用多态性(实现给定的接口(interface)),所以有两种选择:
当库提供选项时使用动态多态性。对于 ifstream,据我所知情况并非如此。
使用静态多态性(模板),这意味着遗留库提供了使用 if stream 之外的其他东西的选项。
我认为您的遗留应用程序不提供任何这些选项,因此您现在必须在没有模拟的情况下对其进行测试。
关于c++ - 是否有允许模拟 std::ifstream 和其他 I/O 库的模拟框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55255919/