Как вызвать две разные функции при вызове фиктивной функции в тестируемой функции в «Тестовом наборе»?
Подробности:
Проверенная функция вызывается дважды в проверенной функции. Когда он вызывается в первый раз, он должен вызывать одну функцию (локальная функция в наборе тестов), а при вызове во второй раз он должен вызывать другую функцию (другую локальную функцию в наборе тестов).
Итак, как установить EXPECT_Call с «Invoke» для вышеуказанного требования?
Вы должны использовать WillOnce
,
Как то так (не проверено):
struct A
{
MOCK_METHOD0( foo, void());
};class A_Test : public ::testing::Test
{
A a;
void bar1(){}
void bar2(){}
};
TEST_F( A_Test, test_1 )
{
EXPECT_CALL( a, foo() )
.WillOnce( Invoke( this, &A_Test::bar1 ) )
.WillOnce( Invoke( this, &A_Test::bar2 ) );
}
Других решений пока нет …