Существует ли эквивалент утверждать _* для ожидания_Калл , который заканчивает тест на первом неинтересном/непревзойденном вызове? Если какой -либо вызов отсутствует или неверно, каждый после этого, вероятно, потерпит неудачу из -за смещения. Это генерирует много шума в результатах тестирования, что затрудняет поиск исходного сбоя. < /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
Как остановить gtest на первом неожиданном вызове Gmock ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение