Как остановить gtest на первом неожиданном вызове GmockC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как остановить gtest на первом неожиданном вызове Gmock

Сообщение Anonymous »

Существует ли эквивалент утверждать _* для ожидания_Калл , который заканчивает тест на первом неинтересном/непревзойденном вызове? Если какой -либо вызов отсутствует или неверно, каждый после этого, вероятно, потерпит неудачу из -за смещения. Это генерирует много шума в результатах тестирования, что затрудняет поиск исходного сбоя. < /P>
Пример выпуска: < /p>
#include
#include
#include

void hw_register_write(uint32_t, uint32_t) {}

class hw_register_access {
public:
virtual void write(uint32_t address, uint32_t value) = 0;
};

class hw_registers : public hw_register_access {
public:
void write(uint32_t address, uint32_t value) override {
return hw_register_write(address, value);
}
};

class mock_registers : public hw_register_access {
public:
MOCK_METHOD(void, write, (uint32_t address, uint32_t value), (override));
};

void program_foo(hw_register_access& reg) {
reg.write(0x10, 0x123);
reg.write(0x10, 0x456); // Bug, want to stop immediately
for (size_t i = 0; i < 10; i++) {
reg.write(0x20, 0x789); // Don't want noise from this
}
}

TEST(programming_sequence_test, program_foo) {
testing::StrictMock mock{};
testing::InSequence seq{};

EXPECT_CALL(mock, write(0x10, 0x123));
EXPECT_CALL(mock, write(0x11, 0x456));
EXPECT_CALL(mock, write(0x20, 0x789)).Times(10);

program_foo(mock);
}

Потому что reg.write (0x20, 0x789) больше не соответствует ожиданиям из -за невыполненных предпосылок, это генерирует более 300 строк ошибок, скрывая проблему с корнем:
Unexpected mock function call - returning directly.
Function call: write(16, 1110)
...
Expected arg #0: is equal to 17
Actual: 16


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как имитировать статический метод с помощью gtest/gmock? [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Googletest (gtest) / googlemock (gmock): почему «Interleav [ing]` wearm_call () `s и вызовы к макетным функциям« неопред
    Anonymous » » в форуме C++
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Как проверить параметры/args в gtest/gmock в weals_call
    Anonymous » » в форуме C++
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Собственный код узла C++ в электронном неожиданном символе
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Переключатель прыгает в неожиданном месте
    Anonymous » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»