34. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
35. Google mock Действия Возвращают значение
struct MockFoo : public Foo
{
MOCK_METHOD0( GetBar, Bar&() );
MOCK_METHOD1( Calculate, int( int ) );
};
...
MockFoo foo;
Bar bar;
EXPECT_CALL( foo, GetBar() )
.WillOnce( ReturnRef( bar ) );
EXPECT_CALL(foo, Calculate( 10 ) )
.WillOnce( ReturnArg< 0 >( ) );
36. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
37. Google mock Действия Побочные эффекты
struct MockMutator : public Mutator
{
MOCK_METHOD2( Mutate, void( bool mutate, int* value ) );
};
...
MockMutator mutator;
EXPECT_CALL( mutator, Mutate( true, _ ) )
.WillOnce( SetArgPointee< 1 >( 5 ) );
38. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
39. Google mock Действия Функция как действие
struct MockFoo : public Foo
{
MOCK_METHOD1( ComplexJob, bool( int x ) );
};
struct Helper
{
bool ComplexJob( int x );
};
...
MockFoo foo;
Helper helper;
EXPECT_CALL( foo, ComplexJob( _ ) )
.WillOnce( Invoke( &helper, &Helper::ComplexJob ) );
40. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
41. Google mock Действия Составное действие
struct MockMutator : public Mutator
{
MOCK_METHOD1( MutateInt, bool( int* value ) );
};
...
MockMutator mutator;
EXPECT_CALL( mutator, MutateInt( _ ) )
.WillOnce( DoAll( SetArgPointee< 0 >( 5 ),
Return( true ) ) );
42. Google mock Действия
•Возвращают значение
•Побочные эффекты
•Функция как действие
•Составное действие
•ACTION макрос
43. Google mock Действия ACTION макрос
ACTION_P( Add, n ) { return arg0 + n; }
EXPECT_CALL( foo, Calc( 10 ) )
.WillOnce( ReturnAdd( 5 ) );