首页 > 解决方案 > 如果我们不涉及真实代码,在 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 作为依赖注入的真实代码。是否有意省略了真实代码的参与,以便只关注模拟方面?

标签: c++dependency-injectiongooglemock

解决方案


推荐阅读