Я по-прежнему новичок в Google Mock, так что учась, когда я ухожу. Я только что добавил некоторые модульные тесты, и у меня возникла проблема, когда я не могу заставить ON_CALL() правильно заглушить метод, вызванный методом.C++ Google Mock - EXPECT_CALL() - ожидание не работает, когда он не вызван напрямую
Следующий код описывает, что у меня есть;
class simpleClass
{
public:
bool simpleFn1() { return simpleFn2(); }
virtual bool simpleFn2() { return FALSE; }
}
В моем единичном тесте у меня есть:
class simpleClassMocked : public simpleClass
{
private:
MOCK_METHOD0(simpleFn2, bool());
}
class simpleClassTests : public ::testing::Test
{
}
TEST_F(simpleClassTests, testSimpleFn2)
{
shared_ptr<simpleClassMocked> pSimpleClass = shared_ptr<simpleClassMocked>(new simpleClassMocked());
ON_CALL(*pSimpleClass, simpleF2()).WillByDefault(Return(TRUE));
// This works as expected - simpleFn2() gets stubbed
pSimpleClass->simpleFn2();
// This doesn't work as expected - when simpleFn1 calls simpleFn2 it's not the stubbed expectation???
pSimpleClass->simpleFn1();
}
Я полагаю, что я должен быть отсутствующий что-то очевидное здесь, может кто-нибудь помочь? Благодаря!
Ваш издеваемый метод должен быть виртуальным. – PiotrNycz
Argh! Вот и все. Спасибо :) Я соответствующим образом обновил этот пример. – user7227230