Я использую Gmock для вызова метода, который возвращает элемент QList heightsFromCsvResult в качестве параметра out. Вот рабочий код:
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 удовлетворен.
Кто-нибудь видит проблему в коде?