作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个函数,需要一个unique_ptr vector :
void MyObject::myfunc(std::vector<std::unique_ptr<Foo>>& vec)
{
std::unique_ptr<Foo> f(new Foo);
vec.emplace_back(std::move(f));
}
SetArgReferee
进行测试,但我正在获得
error: use of deleted function
。
class MockMyObject : public MyObject {
public:
MOCK_METHOD1(myfunc, void(std::vector<std::unique_ptr<Foo>>&));
};
MockMyObject mockObject;
std::vector<std::unique_ptr<Foo>> vecToReturn;
EXPECT_CALL(mockObject, myfunc(_)).WillOnce(SetArgReferee<0>(vecToReturn));
最佳答案
我最终使用了这种解决方法:
class MockMyObject : public MyObject {
public:
MOCK_METHOD1(callmyfunc, void(std::vector<Foo*>&));
void myfunc(std::vector<std::unique_ptr<Foo>>& vec)
{
std::vector<Foo*> helperVec;
callmyfunc(helperVec);
for (const auto& ptr : helperVec) {
vec.emplace_back(std::unique_ptr<Foo>(ptr));
}
}
};
callmyfunc
而不是
myfunc
上设置期望值:
MockMyObject mockObject;
std::vector<Foo*> vecToReturn;
vecToReturn.push_back(new Foo);
EXPECT_CALL(mockObject, callmyfunc(_)).WillOnce(SetArgReferee<0>(vecToReturn));
关于c++ - 带有vector <unique_ptr>的GoogleTest SetArgReferee,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61815729/
我有一个接口(interface)Itest: class Itest { bool testfunction(vector& v, int& id); } 我可以模拟它: MOCK_METH
我有一个函数,需要一个unique_ptr vector : void MyObject::myfunc(std::vector>& vec) { std::unique_ptr f(new F
我正在使用 gmock 并模拟了一个函数 boost::beast::http::response_parser作为输出参数。功能签名看起来像: error_code readFromSocket(b
我是一名优秀的程序员,十分优秀!