我一直在研究官方文档中编写的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作为依赖项注入的真实代码。是否故意省略了对实际代码的参与,而只关注模拟方面?