Я использую Gmock для вызова метода, который возвращает элемент значения QList heightsFromCsvResult как параметр out. Здесь в настоящее время работает код:Параметр метода метода для действия в googlemock
EXPECT_CALL(*_mockAttributeRepository, getGeometryHeightValues(_,_))
.WillOnce(DoAll(SetArgReferee<1>(heightsFromCsvResult.at(0)), Return(true)))
.WillOnce(DoAll(SetArgReferee<1>(heightsFromCsvResult.at(1)), Return(true)))
.WillOnce(DoAll(SetArgReferee<1>(heightsFromCsvResult.at(2)), Return(true)))
.WillOnce(DoAll(SetArgReferee<1>(heightsFromCsvResult.at(3)), Return(true)));
Первый параметр LINENUMBER из
getGeometryHeightValues(int lineNumber, QPair<QString, QString>)
является индексом для heightsFromCsvResult.at (LINENUMBER).
Теперь я пытаюсь использовать Gmock в более общем виде:
int* mockLineNumber = new int;
EXPECT_CALL(*_mockAttributeRepository, getGeometryHeightValues(_,_))
.Times(4)
.WillRepeatedly(DoAll(SaveArg<0>(mockLineNumber), SetArgReferee<1>(heightsFromCsvResult.at(*(mockLineNumber))), Return(true)));
Но этот код не работает, потому что mockLineNumber никогда не написана Gmock. Но EXPECT_CALL удовлетворен.
У кого-нибудь есть проблемы с кодом? не похоже, работает