gpt4 book ai didi

c++ - googlemock:模拟一个本地对象

转载 作者:行者123 更新时间:2023-11-28 04:59:43 26 4
gpt4 key购买 nike

#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?我想改变local_tutle.foo()的返回值而不修改func();

谢谢。

最佳答案

你不能。

您必须从外部补充模拟对象(在您的示例乌龟中),方法是将(模拟的或正常的)乌龟对象作为参数传递。

这种设计模式称为依赖注入(inject),您应该尽快熟悉它,因为它对于设计易于测试且经常使用的应用程序非常重要。

关于c++ - googlemock:模拟一个本地对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46374625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com