有没有什么方法可以通过 GoogleTest for c++ 测试函数调用而无需创建模拟对象,例如我们有以下生产代码:
if (a)
method(x);
我想测试在 a
为 True 且 a
为 False 的情况下是否会调用 method
。我想构建一个与 Google Test 的 EXPECT_CALL 完全相同的测试,但 EXPECT_CALL 仅适用于模拟对象的方法。就我而言,我宁愿不使用模拟(不需要创建任何对象)。
最佳答案
作为状态here ,
It's possible to use Google Mock to mock a free function (i.e. a C-style function or a static method). You just need to rewrite your code to use an interface (abstract class).
他们的“有可能”具有误导性,因为您必须重写代码才能使用类(抽象的,或由模板提供的),因此不再使用自由函数。
关于c++ - EXPECT_CALL 在 Google 测试中没有模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50750047/