如何在基类中模拟非重写的非虚拟/虚拟方法并仅测试派生类的方法? 这里的案例是: 我有一个基类 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/