gpt4 book ai didi

c++ - 抑制模拟类 vector 的 gmock 警告

转载 作者:行者123 更新时间:2023-11-28 04:35:39 32 4
gpt4 key购买 nike

我正在用 gmock 编写单元测试。我的测试主体中有一些无趣的函数调用,我想为其抑制 gmock 警告。但是,我尝试了 NiceMock 或 EXPECT_CALL 等几种方法,但都没有用。这是我尝试过的:

class MockClass : public OriginClass {
// class body
int aFunc();
}

NiceMock<std::vector<MockClass> > mock_vector;

NiceMock<MockClass> tmp;
mock_vector.push_back(tmp);

EXPECT_CALL(tmp, aFunc())
.WillRepeatedly(Return(1));

但我不断收到无趣函数调用的 gmock 警告。谁能帮忙?

最佳答案

好吧,最后我自己找到了答案。

问题是 gmock 没有为 NiceMock 提供移动构造函数。所以我们只好把class的vector改成unique_ptr的vector,问题就解决了。

具体应该是这样的:

std::vector<std::unique_ptr<NiceMock<MockClass>>> my_mockclass;

当推回新元素时,你应该使用:

my_mockclass.emplace_back(std::make_unique<NiceMock<MockClass>>());

应该可以解决问题。 :)

关于c++ - 抑制模拟类 vector 的 gmock 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51542512/

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