Код: Выделить всё
TestClass.cc. // Unit test class
TEST(testFixture, testMethod) {
MockClass mock;
EXPECT_CALL(mock, func1(_));
mock.helloWorld();
}
< /code>
MockClass.cc // Mock class
class MockClass{
MOCK_METHOD1(func1, bool(string));
}
< /code>
HelloWorld.cc // Main class
void helloWorld() {
string str;
if (corona::func1(str)) { -> function to be mocked
// Actions
}
}
< /code>
In the above helloWorld< /code> Метод, Corona :: func1 (str) < /code> не способен вызовать, используя вышеупомянутую функцию.EXPECT_CALL(mock, corona::func1(_));< /code> -> Не удалось скомпилировать. < /li>
[*] Добавленное объявление пространства имен в макете
MOCK_METHOD1(corona::func1, bool(string));
Произошли разные обходные решения с использованием пространства имен в макете класса и тестового класса. < /li>
< /ol>
Я застрял на этом этапе, не в состоянии протестировать метод Helloworld < /code>. Фактический исходный код более сложный. Как я мог это сделать?
Подробнее здесь: https://stackoverflow.com/questions/619 ... sing-gmock