3
私は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)));
getGeometryHeightValues(int lineNumber, QPair<QString, QString>)
から第1のパラメータLINENUMBERはheightsFromCsvResult.at(行番号)のインデックスです。
今私はより一般的な方法でGmockを使用しよう:mockLineNumberはGmockによって書き込まれることはありませんので、
int* mockLineNumber = new int;
EXPECT_CALL(*_mockAttributeRepository, getGeometryHeightValues(_,_))
.Times(4)
.WillRepeatedly(DoAll(SaveArg<0>(mockLineNumber), SetArgReferee<1>(heightsFromCsvResult.at(*(mockLineNumber))), Return(true)));
しかし、このコードは動作しません。しかし、EXPECT_CALLは満たされています。
コード内の問題は誰にも見えますか?同じEXPECT_CALL内SaveArgで設定した変数を使用して