Google тестирование составных классов в C ++ - PullRequest
0 голосов
/ 23 апреля 2020

Ниже приведен фрагмент кода:

//Source code sample

//Class A is the class under test
class A{
public:
  A(){
    B *b = new B;
  }
  void func1()
  {
    b->func2();
  }
};

class B
{
  void func2()
  {
    //here a function from third class is called.
  }
};

//Test case
class MockB : public B
{
  MOCK_METHOD0(func2(), void());
}

TEST_F(A, TC1_func1)
{
  MockB mock;
  A *a = new A;
  a->func1();
  EXPECT_CALL(mock, func2()).Times(1);
}

Здесь тело func1 содержит только вызов func2. Я хочу написать контрольный пример для func1. У меня вопрос: как мы можем проверить, вызывается ли func2 () из func1 или нет?

Примечание:

  1. класс A создает экземпляр класса B
  2. Я не хочу передавать указатель класса B в качестве аргумента конструктору класса A
  3. Я не хочу вносить какие-либо изменения в исходный код.

Спасибо заранее.

...