#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());
}如何在local_turtle ()中模拟函数?我想在不修改local_tutle.foo()的情况下改变func()的返回值;
谢谢。
发布于 2017-09-23 07:53:32
你不能这么做。
您必须从外部补充mocked object (在您的示例turtle中),方法是将(mocked或nomral) turtle对象作为参数传递。
这种设计模式被称为依赖注入,您应该尽快熟悉它,因为它在设计易于测试和经常使用的应用程序时非常重要。
https://stackoverflow.com/questions/46374625
复制相似问题