c++ - 在单元测试时如何模拟基类的非重写、虚拟/非虚拟方法?

标签 c++ unit-testing googletest googlemock

如何在基类中模拟非重写的非虚拟/虚拟方法并仅测试派生类的方法? 这里的案例是: 我有一个基类 X,它具有连接到外部服务器并执行其他一些操作的方法。 我有一个派生自 X 的类 Y。我在 Y 中实现了两个方法。我只想对它们进行单元测试。我只担心这两种方法,我不希望调用基类实现来连接到服务器等(我想模拟这些方法,但我不想在我的派生类中重写这些方法Y 并且什么也不做,因为它是生产代码)。 关于如何单独对这些方法进行单元测试有什么想法吗?

P.S:我正在使用 C++/GTest 进行开发和单元测试。

最佳答案

一种选择是在测试目录中创建一个 Mock_base 类和从它继承的类 Derived。现在用什么都不做的函数模拟出你不感兴趣的实际 Base 中的任何实现。例如 Mock_base::Connect() 可能会返回 SUCCESS 返回码。这样您就可以在不修改源代码的情况下对 Derived:funcs() 进行单元测试。

关于c++ - 在单元测试时如何模拟基类的非重写、虚拟/非虚拟方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7861750/

相关文章:

googletest - 如何告诉 Cppcheck 跳过头文件

c++ - 有 gtest 比较二进制的东西吗?

c++ - 在 C++ 中打包嵌套结构

c++ - 如何实现接受任何容器类型的功能?

reactjs - 如何在用 jest 进行单元测试时替换全局函数

python - 如何围绕现有产品构建测试套件?

c++ - 将 u16string 转换为 float

c++ - Boost mpi挂起

javascript - 使用 Jasmine 测试 Angular 服务时,脚本的包含顺序是否导致此未知提供程序错误

c++ - gmock : Returns distinct values on each mock invocation