c – 如何设置GMock EXPECT_CALL以为模拟函数调用两个不同的函数

前端之家收集整理的这篇文章主要介绍了c – 如何设置GMock EXPECT_CALL以为模拟函数调用两个不同的函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在“测试套件”中的测试函数调用模拟函数调用两个不同的函数

细节:
模拟函数在测试函数调用两次.当它第一次被调用时,它应该调用一个函数(测试套件中的本地函数),当第二次调用时,它应该调用另一个函数(测试套件中的另一个本地函数).

那么,如何为上述要求设置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 ) );
}

猜你在找的C&C++相关文章