c++ - 是否有允许模拟 std::ifstream 和其他 I/O 库的模拟框架?

标签 c++ testing mocking

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

最佳答案

Mocking 使用多态性(实现给定的接口(interface)),所以有两种选择:

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

  • 使用静态多态性(模板),这意味着遗留库提供了使用 if stream 之外的其他东西的选项。

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

关于c++ - 是否有允许模拟 std::ifstream 和其他 I/O 库的模拟框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55255919/

相关文章:

java - 具有返回 void 的可运行参数的模拟方法

python - 将脚本语言嵌入到游戏引擎的编程语言中的目的是什么?

Asp.net网站负载测试

Laravel Testing/phpunit,使用依赖注入(inject)时传递的参数太少

java - 删除单元测试的依赖项

go - 如何在 golang 中模拟 GCP 的存储?

c++ - 如何调整 C++ 代码以使用模板类

c++ - 如果我删除一个类,它的成员变量会自动删除吗?

c++ - valgrind 中的一些错误

testing - 测试 Go 时如何跨包共享设置和拆卸方法?