Ниже приведен фрагмент кода:
//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 или нет?
Примечание:
- класс A создает экземпляр класса B
- Я не хочу передавать указатель класса B в качестве аргумента конструктору класса A
- Я не хочу вносить какие-либо изменения в исходный код.
Спасибо заранее.