3
我使用Gmock進行方法調用,該方法調用返回QList heightsFromCsvResult的元素作爲輸出參數。這裏是當前工作的代碼:將方法參數傳遞給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得到滿足。
有沒有人在代碼中看到問題?