生のダブルポインタを持つメソッドを模倣します。例えば、ヘルパークラスの下にメソッドint run(int ** a)があります。 SetArgPointeeを使用して期待値を設定しようとしていますが、動作しません。コンパイラエラーがint ** const int *に変換できません。doubleポインタを引数として持つ関数をモックする
class Helper {
public:
MOCK_METHOD1(run, int(int ** a));
};
int** test = new int*[2];
test[0] = new int[1];
test[0][0] = 5;
test[1] = new int[1];
test[1][0] = 55;
int** test2 = new int*[2];
test2[0] = new int[1];
test2[0][0] = 10;
test2[1] = new int[1];
test2[1][0] = 110;
Helper helper;
EXPECT_CALL(helper, run(_))
.Times(1)
.WillOnce(DoAll(SetArgPointee<0>(test2), Return(99)));
int rc = helper.run(test);
test double pointerをtest2に置き換えることができません。どのようにそれを行うことができるか知りたい。
「ヘルパー」とは何ですか? [MCVE](https://stackoverflow.com/help/mcve)を見たいかもしれません。 – Labonneguigue
クラスヘルパー{ public: MOCK_METHOD1(run、int(int ** a)); }; – user3699160
'ベクトル'は使用できません。 –
Labonneguigue