gpt4 book ai didi

matcher - 用于输出参数的 googlemock 匹配器

转载 作者:行者123 更新时间:2023-12-02 00:24:26 26 4
gpt4 key购买 nike

我正在测试我的类是否使用正确的参数调用模拟类上的方法。我已经建立了一个基本的期望:

// mListener is a mocked object
// This expectation accepts any argument
EXPECT_CALL(this->mListener, OnChanged(_))
.Times(1);

这很好,但我也想验证这个论点。它是一个只有使用输出参数的访问器的对象:
// aValue is an output parameter
HRESULT get_Value(int* aValue);

如何定义一个匹配器来检查 get_Value 的值放入 aValue ?

最佳答案

你可以尝试这样的事情:

MATCHER_P(CheckValue,
expected_value,
std::string("get_Value ")
+ (negation ? "yields " : "doesn't yield ")
+ PrintToString(expected_value)
+ " as expected.") {
int result;
arg.get_Value(&result);
return expected_value == result;
}

这可以检查例如 aValue == 7通过做:
EXPECT_CALL(this->mListener, OnChanged(CheckValue(7)))
.Times(1);

关于matcher - 用于输出参数的 googlemock 匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9401017/

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