gpt4 book ai didi

c++ - gmock : Returns distinct values on each mock invocation

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:02 24 4
gpt4 key购买 nike

给定:

struct MockThis : public IMocker {
MOCK_METHOD0(ReturnThis, std::string());
};

我在此对象上设置了一个 ON_CALL,因此它返回一个默认值,但假设我希望 ReturnThis 在我的特定测试中每次调用它时返回一个不同的字符串,我该如何实现?

最佳答案

你可以考虑做这样的事情:

struct MockThis : public IMocker {
MOCK_METHOD0(ReturnThis, std::string());

MockThis() {
ON_CALL(*this, ReturnThis())
.WillByDefault(Invoke(&real_, &MockThis ::ReturnStringVariations));
}

protected:
static std::string randomStrings[10];


std::string ReturnStringVariations() {
// Return some string on either random conditions, or calls counted, etc.
unsigned int strIndex = std::rand() % 10;
return randomStrings[strIndex];
}
};

std::string MockThis::randomStrings[10] = {
"Random string 1" ,
// ...
"Random string 10"
};

要从预定义数组(如上所示)、格式化变体或其他任何内容生成字符串,您可以考虑使用 c++11 pseudo-random-numbers 中的内容。功能。

关于c++ - gmock : Returns distinct values on each mock invocation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480510/

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