c++ - EXPECT_CALL 在 Google 测试中没有模拟

标签 c++ unit-testing googletest googlemock

有没有什么方法可以通过 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/

相关文章:

c# - 为持久数据创建和删除编写单元测试

c++ - google mock - 保存 EXPECT_CALL 然后重新使用和更改子句

c++ - 如何在 Linux 上获取磁盘上的文件大小?

c++ - while 循环时的问题

c++ - C++中的静态函数调用非静态函数

c++ - 在 C++ 中模板化一个 'for' 循环?

c# - 每个数据库行的 NUnit 测试?

reactjs - 测试素材-ui按钮文字

c++ - 如何在进行 GoogleTest 时跳过源代码中的部分“代码”

c++ - 如何在 Visual Studio 2010 中的 C++ googletest 项目中设置代码覆盖率