在不同的时间传递不同的论点

时间:2016-07-25 10:11:45

标签: c++ c++11 googletest gmock

我想改变不同函数调用的不同参数如何实现这个?

示例:

EXPECT_CALL(*obj, Write(_)).WillOnce(DoAll(SaveArg<0>(&WriteObj), Return(true)));

Write()方法将被多次调用或随机调用。 在每次Write调用时,我想将对象传递给Write()方法。我想在矢量中使用这些参数,我该怎么做?

1 个答案:

答案 0 :(得分:1)

最后我用这种方式解决了我的问题。

在测试类中

void SaveWritableObjects(WritableInterface * pWritableObject)
{
    WritableObjectList.push_back(pWritableObject);
}

std::vector<WritableInterface *> WritableObjectList;

并且在测试功能中

 EXPECT_CALL(*pMFOI, Write(_)).WillRepeatedly(DoAll(Invoke(this, &intTestErrorEvents::SaveWritableObjects), Return(true)));