6

「テストスイート」のテスト済み関数でモック関数が呼び出されたときに、2 つの異なる関数を呼び出す方法は?

詳細: モック関数がテスト済み関数で 2 回呼び出されています。最初に呼び出されたときに 1 つの関数 (テスト スイート内のローカル関数) を呼び出し、2 回目に呼び出されたときに別の関数 (テスト スイート内の別のローカル関数) を呼び出す必要があります。

では、上記の要件に対して「Invoke」で EXPECT_Call を設定するにはどうすればよいでしょうか。

4

1 に答える 1

8

を使用する必要があります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 ) );
}
于 2012-11-30T08:52:55.623 に答える