Насмешливый побочный эффект для параметра константного указателя с помощью googlemock

Я использую googlemock для модульных тестов и пытаюсь смоделировать метод с параметром out array:

void MyMock::myFunc(double myVal[2]).

Метод myFunc должен хранить значения в массиве myVal.

Как мне издеваться над этим побочным эффектом? Я попробовал следующее:

double a_mockedValues[] = {1., 2.};
ON_CALL(myMock, myFunc(_)).WillByDefault(SetArgPointee<0>(a_mockedValues));

Мое намерение состоит в том, чтобы вызывающая сторона myFunc получала значения 1. и 2. в массив, который она передает в проверяемый метод.

Однако этот подход не работает. Компилятор говорит что-то вроде:

невозможно указать явный инициализатор для массивов

Кто-нибудь знает, как издеваться над поведением такого параметра?

Спасибо.

3

Решение

На самом деле есть предикат для этого конкретного варианта использования: SetArrayArgument (см. третий пример под Дразнящие побочные эффекты в Google Mock CookBook (http://code.google.com/p/googlemock/wiki/CookBook).

Ваш код станет:

double a_mockedValues[] = { 1., 2. };
ON_CALL(myMock, myFunc(_)).WillByDefault(SetArrayArgument<0>(a_mockedValues, a_mockedValues + 2));
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]