c++ - 在不同的时间传递不同的参数

标签 c++ c++11 googletest googlemock

我想在不同的函数调用中更改不同的参数如何实现?

例子:

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

Write() 方法将被多次或随机调用。 在每次 Write 调用中,我都希望将对象传递给 Write() 方法。我想将这些参数放在一个 vector 中,我该怎么做?

最佳答案

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

在测试类中

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

std::vector<WritableInterface *> WritableObjectList;

并在测试函数中

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

关于c++ - 在不同的时间传递不同的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38564980/

相关文章:

c++ - 轻松编写保持状态的模拟

c++ - 引用如何不需要存储?

c++ - (C++) 将指针分配给字符串的一部分

c++ - 从PDF中提取第一行文本

c++ - 关于资源管理器类的 RAII 问题

c - 使用 Google Test 测试 C 函数

c++ - 从 Magick++ 图像从内存 (libharu) 加载图像

c++ - GDB 以无序的方式跳到错误的行

c++ - Visual Studio 2012 中的智能指针错误

c++ - 错误 : LINK: fatal error LNK1561: entry point must be defined c++