Googlemock:模拟本地对象
googlemock: mock a local object
#include "gtest/gtest.h"
#include "gmock/gmock.h"
class Turtle{
public:
int foo();
};
int func(){
Turtle local_tutrtle;
auto x = local_tutle.foo();
......
return x;
}
TEST(mock, foo) {
class MockTurtle : public Turtle {
public:
MOCK_METHOD0(foo, int());
};
ASSERT_EQ(10, func());
}
如何在func()中嘲笑local_turtle?我想在不修改func();
的情况下更改local_tutle.foo()的返回值谢谢。
你不能。
您必须通过(嘲笑或提名)乌龟对象作为参数来补充外部模拟的对象(在您的示例海龟中)。
这种设计模式称为依赖注入,您应该尽快熟悉它,因为它在设计易于测试的应用程序并经常使用非常重要。
相关文章:
- googlemock-如何模拟被测试类所拥有的对象
- 为什么谷歌测试/模拟显示 std::unique_ptr 泄露的模拟对象错误?
- 是否可以使用 EXPECT_CALL 来验证模拟对象的构造函数是否在某些时候调用成员函数?
- googlemock:无法创建模拟类的对象
- 模拟对象与模拟提升::测试
- 谷歌模拟:测试对象的某个属性
- 期望在模拟对象上调用了某个方法.它会破坏封装吗?
- 我如何模拟将作为唯一_ptr存储在gmock中的对象
- 使用GoogleMock调用聚合对象调用的模拟函数
- 仔细阅读模拟对象的期望
- Googlemock:模拟本地对象
- 模拟单击"Choose" QFileDialog 对象中的按钮
- gmock-模拟对象及其内部模拟方法
- 在C 中将模拟对象施加到其抽象基类
- 如何在C 中模拟NSDATA对象
- 食人魔:模拟透视视图缩放对象
- 模拟对象 c++
- 如何使模拟对象在Google模拟中抛出一个例外
- 将模拟对象分配给受保护的成员
- c++插件:通过边界传递对象(模拟它)