我正在测试我的类是否使用正确的参数调用模拟类上的方法。我已经建立了一个基本的期望:
// 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
的值?
答案 0 :(得分:3)
您可以尝试以下方式:
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);