В GMock можно заменить ранее установленное ожидание?GMock: переопределение ожидания по умолчанию
Предположит, тест люкс ожидание по умолчанию для конкретного вызова метода, который является то, что в большинстве случаев тестов хотят:
class MyClass {
public:
virtual int foo() = 0;
};
class MyMock {
public:
MOCK_METHOD0(foo, int());
};
class MyTest: public Test {
protected:
void SetUp() {
EXPECT_CALL(m_mock, foo()).WillOnce(Return(1));
}
MyMock m_mock;
};
TEST_F(MyTest, myTestCaseA) {
EXPECT_EQ(1, m_mock.foo());
}
Это работает нормально. Однако некоторые из тестовых примеров имеют разные ожидания. Если я добавлю новое ожидание, как показано ниже, это не сработает.
TEST_F(MyTest, myTestCaseB) {
EXPECT_CALL(m_mock, foo()).WillOnce(Return(2));
EXPECT_EQ(2, m_mock.foo());
};
Я получаю сообщение:
[ RUN ] MyTest.myTestCaseB
/home/.../MyTest.cpp:94: Failure
Actual function call count doesn't match EXPECT_CALL(m_mock, foo())...
Expected: to be called once
Actual: never called - unsatisfied and active
[ FAILED ] MyTest.myTestCaseB (0 ms)
Я понимаю, почему я получаю это. Вопрос в том, как отменить ожидаемое по умолчанию, если тестовый пример указывает его собственный? Разрешает ли GMock это или какие подходы я могу использовать для достижения намеченного поведения?
Третий один велик! Спасибо! – Kane