推荐答案
-- -------------------- ---- ------- -------- --------------- -------- --------------- -- ---------- ----- ----------- - ------- ------- -------------- - -------- ------- ---- ------------- - -- -- -- ------- ----- --------------- - ------ ----------- - ------- ----------------- ------------ --- ------------ -- -- ---- --------------------- ---------------- - --------------- ----- -- ---- ----------------- ------------------------ -- ------ ------------------- - --- -------- ----- ------ ----- - -------------------------------- ------ ------ ---------------- -
本题详细解读
1. 引入 Google Mock 和 Google Test 头文件
首先,我们需要引入 Google Mock 和 Google Test 的头文件:
#include <gmock/gmock.h> #include <gtest/gtest.h>
2. 定义接口类
假设我们有一个接口类 MyInterface
,其中包含一个纯虚函数 doSomething()
:
class MyInterface { public: virtual ~MyInterface() = default; virtual void doSomething() = 0; };
3. 创建模拟类
接下来,我们创建一个模拟类 MockMyInterface
,继承自 MyInterface
,并使用 MOCK_METHOD
宏来模拟 doSomething()
方法:
class MockMyInterface : public MyInterface { public: MOCK_METHOD(void, doSomething, (), (override)); };
4. 编写测试用例
在测试用例中,我们创建一个 MockMyInterface
的实例,并使用 EXPECT_CALL
宏来设置期望,即 doSomething()
方法应该被调用一次:
-- -------------------- ---- ------- --------------------- ---------------- - --------------- ----- -- ---- ----------------- ------------------------ -- ------ ------------------- -
5. 运行测试
最后,在 main
函数中初始化 Google Mock 和 Google Test,并运行所有测试:
int main(int argc, char** argv) { ::testing::InitGoogleMock(&argc, argv); return RUN_ALL_TESTS(); }
通过以上步骤,我们可以在 C++ 中使用 Google Mock 进行模拟测试。