Google Mock - Как вернуть другое значение, используя weals_call, чтобы выйти из циклаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Google Mock - Как вернуть другое значение, используя weals_call, чтобы выйти из цикла

Сообщение Anonymous »

Используя Google Mock, как мне указать weals_call с возвращаемым значением n раз, а затем другое значение n+1? < /p>

Единственный способ пройти свой тест, если я вручную укажу каждую итерацию, например, < /p>

EXPECT_CALL(mock, Read(address)).Times(5)
.WillOnce(Return(0))
.WillOnce(Return(0))
.WillOnce(Return(0))
.WillOnce(Return(0))
.WillOnce(Return(1));
< /code>

test description < /strong> < /p>

В тестируемом коде используется слово статуса, чтобы определить, должны ли данные для чтения цикла. Ожидается, что он должен установить ожидание вернуть 1 из макетного метода read () n раз, а при nth цикле return 0, чтобы указать больше данных. < /p>

К сожалению, рассматриваемый код находится на отдельной машине, но вот репрезентативный пример. < /p>

const unsigned int statusAddress = 0;
const unsigned int dataAddress = 1;
const unsigned int maxData = 8;

unsigned int dataBuffer[maxData] = {0};
int readIndex = 0;

// Check if data is available (read returns 1).
unsigned int dataIsAvailable = Read(statusAddress);

// Keep reading data until no more is available or the buffer is full.
while ((dataIsAvailable == 1) && (readIndex < maxData))
{
// Read data word.
dataBuffer[readIndex++] = Read(dataAddress);

// Read status to determine if more data is available.
dataIsAvailable = Read(statusAddress);
}
< /code>

Метод считывания высмеивается. < /p>

Если я добавлю ожидания в порядке, используется последнее weal_call (я предполагаю, что Willonce перезаписывается в коде Google). Очевидно, что я неправильно понимаю, как упорядочено несколько ожиданий_каллов. < /P>

EXPECT_CALL(mock, Read(address)).Times(4).WillRepeatedly(Return(1));
EXPECT_CALL(mock, Read(address)).Times(1).WillOnce(Return(0));
< /code>

Expected: to be called 4 times
Actual: never called - unsatisfied and active
< /code>

As there is no method...

WillN(Return(1), 4)
< /code>

... I presume there is a less fixed way of structuring an EXPECT_CALL for more complex and/or longer sequences of data?

Подробнее здесь: https://stackoverflow.com/questions/559 ... xit-a-loop
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение