c++ - 如果我们不涉及真实代码,在 gmock 中模拟是否有意义?
问题描述
我一直在阅读官方文档中编写的 gmock 示例。我对这些示例中的许多不涉及真实代码(即被测软件)这一事实感到困惑。相反,这些示例只是模拟对象,并且只直接在模拟对象上运行方法。这是从那里获取的示例:
using testing::ReturnPointee;
...
int x = 0;
MockFoo foo;
EXPECT_CALL(foo, GetValue())
.WillRepeatedly(ReturnPointee(&x)); // Note the & here.
x = 42;
EXPECT_EQ(42, foo.GetValue()); // This will succeed now.
我完全理解代码在做什么。但是,我们为什么要测试模拟代码的行为是否正确?我没有看到任何将 foo 作为依赖注入的真实代码。是否有意省略了真实代码的参与,以便只关注模拟方面?
解决方案
推荐阅读
- reactjs - Expo Web(React Native for Web)不显示console.log
- java - 通过 Quarkus 连接数据库
- visual-studio-code - 我可以在 VSCode 启动和关闭时运行脚本吗?
- angular - 如何取消订阅事件订阅
- firebase - 如何从 Firebase 中的 flutter_facebook_login 获取 Facebook 电子邮件?
- ios - 在 Swift 中从 Sqlite DB 加载数据时索引超出范围
- php - 文件上传到服务器但无法在 mysql 中存储文件详细信息
- java - 如何使用 ParameterizedTest 中的参数的嵌套属性定义显示名称(name = #{index} multiply {0[0]} x {0[1]} = {0[2]})
- django - AWS Lightsail 上未提供静态文件
- reactjs - 无法从 sqlite 在 react usestate 数组中设置记录