gmock相关内容

如何模拟Google测试中公共方法正在使用的类中的私有方法?

我有一个类,比如说ClassA,它既有一些公共函数也有一些私有函数。 公共函数轮流类私有函数。 现在我在这里的目的是通过公共函数测试私有函数。 对于公共函数,我尝试调用原始实现,而对于私有方法,我尝试创建一个Mock函数。 我的A班是这样的 class ClassA { public: string getName(string key) { int value ..
发布时间:2022-08-26 21:46:49 C/C++开发

模拟非虚方法 C++ (gmock)

我有课 class CSumWnd : public CBaseWnd{私人的:布尔方法A()} 请你帮助如何模拟 MethodA() 而不使虚拟,我不明白 高性能依赖注入 的概念 p> 解决方案 这意味着你必须模板化你的生产代码.使用您的示例: CSumWind 类定义: class CSumWnd : public CBaseWnd{私人的:布尔方法A()}; 模拟CSumW ..
发布时间:2022-01-08 21:35:17 C/C++开发

谷歌模拟 - 我可以在同一个模拟对象上多次调用 EXPECT_CALL 吗?

如果我在同一个 TEST_F 中的同一个模拟对象上两次调用 EXPECT_CALL ...会发生什么? 是否将期望附加到模拟对象上,还是第二次调用消除了第一次调用的影响? 我发现了之后子句似乎暗示允许多次调用同一个模拟+ EXPECT_CALL. 解决方案 是的,您可以在同一个模拟对象上多次调用 EXPECT_CALL.只要您确保在实际使用模拟方法之前调用了所有 EXPECT_ ..
发布时间:2021-12-09 19:33:09 C/C++开发

gmock 可以用于存根 C 函数吗?

我是 gmock 的新手,所以我想知道如何存根在被测函数中调用的简单 C 函数以进行单元测试. 示例: int func(int a){布尔查找;//一些代码查找 = func_1();返回查找;} 我搜索了 gmock,据我所知 gmock 不提供存根简单 C 函数的功能,因此我想问一下 gmock 是否提供模拟或存根 func_1 的功能? 如果不是,我如何在不更改源代码的情况 ..
发布时间:2021-12-09 19:17:58 其他开发

使用 GTest 和 GMock 进行测试:共享库与静态库

我认为这个问题可能违反了该网站的一些问答标准,因为我可能收到的答案可能被视为意见驱动.尽管如此,它在这里...... 假设我们正在处理一个 C++ 项目,使用 CMake 来驱动构建/测试/打包过程,并使用 GTest 和 GMock 进行测试.进一步假设我们项目的结构如下所示: cool_project||-- 来源||||-- module_foo||||||--(一堆源文件)|||| ..
发布时间:2021-11-17 02:55:51 C/C++开发

用柯南安装gtest

我将改用柯南,希望这将简化用户安装我的软件包的过程.没关系,直到我开始将gtest添加到我的程序包中. 在安装过程中,我收到消息 gtest/1.8.1@bincrafters/stable:已安装软件包conanfile.txt imports():复制了4个'.a'文件:libgmockd.a,libgtestd.a,libgmock_maind.a,libgtest_maind.a ..
发布时间:2021-05-13 18:34:51 其他开发

gmock-如何使用noexcept说明符模拟函数

我需要模拟以下功能: virtual void fun() noexcept = 0; 是否可以使用gmock? Gmock具有以下宏:#define GMOCK_METHOD0_(tn, constness, ct, Method, ...),但有一条注释:// INTERNAL IMPLEMENTATION - DON'T USE IN USER CODE!!!而且我不知道如 ..
发布时间:2020-11-19 23:05:18 C/C++开发

GMock死亡案例-未调用模拟函数

我在my_inet.cpp文件中创建了一个外部套接字api的模拟. 该套接字api的GMock函数位于mock.h文件中. 我正在使用在server.cpp文件中创建的my_inet套接字API. 测试用gtest.cpp编写. 此处写入的死亡案例正在根据输出执行.输出表明该过程已终止.但是它也说socket()调用从未进行过,因此该案例显示为失败. 请说明原因是什么,解决方案是 ..
发布时间:2020-11-19 23:02:37 C/C++开发

Google Test中没有模拟的EXPECT_CALL

是否可以通过GoogleTest for c ++测试函数调用而无需创建模拟对象,例如我们有以下生产代码: if (a) method(x); 我想测试在a为True和a为False的情况下是否会调用method.我想构建一个与Google Test的EXPECT_CALL完全相同的测试,但是EXPECT_CALL仅适用于模拟对象的方法.就我而言,我不想使用模拟(不需要创建任何对 ..
发布时间:2020-11-19 23:02:21 C/C++开发

如何使用gtest对std :: bind函数进行单元测试?

我正在尝试为项目中的某些cpp文件编写单元测试用例. 这里的场景是: 我有一个cpp文件,其中仅定义了一个公共方法,而后者又调用了私有方法. 在这里,私有方法在公共方法中被称为回调方法.我如何在这里测试私有方法.我将对回调指针进行模拟,但不确定如何调用私有方法. 请给我一些建议,在这种情况下如何在不更改源代码的情况下调用私有方法. 这里是前人: buttonListe ..
发布时间:2020-11-19 23:00:27 C/C++开发

gmock具有11个参数的模拟方法

我正在使用gmock模拟遗留代码中的依存关系.其中一个类具有带有11个参数的方法.当我尝试使用MOCK_METHOD11_WITH_CALLTYPE对其进行模拟时,我发现此宏不存在. gmock最多只能支持10个参数.您对此有何建议?我是否可以用虚拟人体来实现此方法?或复制&扩展宏?谢谢! PS,我现在不需要在测试中模拟此方法,但将来可能需要这样做. 最诚挚的问候, 解决方案 ..
发布时间:2020-11-19 22:58:50 C/C++开发

谷歌模拟-如何说“必须以某个参数一次调用函数,但可以使用不同的参数多次调用"?

我需要检测给定的函数是否已通过一组特定参数完全调用了ONCE. EXPECT_CALL(Mock_Obj, func("abc")).Times(1) 但是可以多次使用不同的参数调用该函数. 我该如何表达? 解决方案 在Google Mock中,以后的期望会覆盖以前的期望(EXPECT_CALL(Mock_Obj, func(_)).Times(AnyNumber()); ..
发布时间:2020-11-19 22:56:10 C/C++开发