- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须遵循模拟函数
DoSomething(const char* par0, const char* par2)
DoSomething2(std::string);
我将 DoSomething 的值保存到
std::string savedPar_;
我想在 DoSomething2 中使用它。如何做到这一点?
EXPECT_CALL(mockd_, DoSomething(_, _,))
.WillOnce(DoAll(SaveArg<1>(&savedPar_), (Return(Ok))));
EXPECT_CALL(mockd_, DoSomething2(savedPar_,))
.WillOnce((Return(Ok))));
// has not yet the val
sut_->work();
// savedPar_ has the value
最佳答案
实现此目的的一种方法是在调用 DoSomething2
时使用 SaveArg
,然后比较从 DoSomething
和 DoSomething2 保存的参数
EXPECT_CALL(mockd_, DoSomething(_, _))
.WillOnce(DoAll(SaveArg<1>(&savedPar1_), (Return(Ok))));
EXPECT_CALL(mockd_, DoSomething2(_))
.WillOnce(DoAll(SaveArg<0>(&savedPar2_), (Return(Ok))));
EXPECT_EQ(savedPar1_, savedPar2_);
另一种是创建一个接收指针的自定义匹配器,像这样
MATCHER_P(SameAs, value, PrintToString(*value)) {
return arg == *value;
}
你的期望是这样的
EXPECT_CALL(mockd_, DoSomething(_, _))
.WillOnce(DoAll(SaveArg<1>(&savedPar_), (Return(Ok))));
EXPECT_CALL(mockd_, DoSomething2(SameAs(&savedPar_)))
.WillOnce((Return(Ok)));
关于c++ - expect_call 中使用的 SaveArg 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69545700/
我必须遵循模拟函数 DoSomething(const char* par0, const char* par2) DoSomething2(std::string); 我将 DoSomething
我正在尝试使用GoogleTest来获取传递给函数的参数。该函数的声明是这样的 void foo(rapidjson::Value &element, int number) {} 我会这样创建一个O
我是 gmock 的新手,我想了解使用 SaveArg 时会发生什么。 这是我在 gmock 文档中找到的内容: SaveArg(pointer) : 将第 N 个(从 0 开始)参数保存到 *poi
我在保存模拟接收到的指针参数时遇到困难。 #define SIZE_OF_DATA typedef struct { uint32_t someValue1; uint16_t som
std::function l_function; auto l_strategyMock = std::make_shared(); EXPECT_CALL(*m_strategyFactoryMo
我是一名优秀的程序员,十分优秀!