问题标签 [googlemock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 GoogleMock 中实现 WillN?
是否有比重复使用更简洁和/或更简洁的方法来设置多个相同的操作WillOnce
?例如,有没有办法获得WillRepeatedly
基数?
我只能找到链接WillOnce
可能后跟单个 的示例WillRepeatedly
,这对于我可能希望在调用函数的前 N 次返回值然后最后一次返回不同值的情况下不太理想,例如使用模拟在以下示例中表示 obj 并让它循环 N 次:
c++ - Google Mock:如何配置自定义消息来解释匹配失败
如果匹配失败,谷歌模拟打印如下消息:
test.cpp:112: EXPECT_CALL(mock_obj, foo( MyMatcher ( bar ) ))...
预期 arg #0 : 等于 [1,2; 3,4]
实际:{ 1 }
预期:被调用一次
实际:从未被调用 - 不满意和活跃
使用自定义匹配器MyMatcher我可以定义一个描述字符串,用于在匹配失败时生成失败消息。但它只定义了消息的Expected arg #0部分。有什么方法可以自定义实际的打印方式吗?
在我的情况下,我不能为bar类重载 operator<<,因为它已经被第三方代码重载不在我的控制之下(这个库定义了bar类和 operator<< )。
c++ - 模拟方法的 GoogleTest Expect 调用失败
我是 GTEST 的新手,只是了解 Mock 的工作原理,
我尝试编写简单的程序 Foo.h 和 FooDisplay.h (它需要在构造函数中的 Foo ),还有 MockFoo.cpp (这是测试 Gmock 的主要 GTEST 程序)..
当我模拟并为 Foo 执行 Expect 调用时,它会在执行中抛出以下内容..
日志
Foo.h
FooDisplay.h
MooFoo.cpp
c++ - DLL 中的 Google 测试
我想使用 Google Test / Mock 为我的 DLL 中的代码编写单元测试。测试代码应该被编译到我的 DLL 中。
我在 Google Test Primer 中读到这是可能的,但是 gtest 必须编译成 DLL(我猜 gmock 也是如此)。
是否有人编译并使用该框架作为 DLL,并且可以告诉我最重要的项目设置(我使用 VS2010)以及如何使用生成的 DLL 来运行测试?
c++ - 使用 gmock 进行外部依赖
如何使用 gmock 或 gtest 在此处模拟 CustomStream 外部依赖项?
googlemock - 不确定这个 gMock 示例中的“A”代表什么
在上面的示例文本中,Describe 方法的参数我不明白。它看起来像一个类名,然后是一个模板,但想要确认。
c++ - 实际函数调用计数与 EXPECT_CALL(*mock, display()) 不匹配
我正在调用EXPECT_CALL
一个模拟函数display()
,但它返回运行时错误
Actual function call count doesn't match EXPECT_CALL(*mock, display())...
输出
GTEST_static_class.h
GTest_static_example.cpp
c++ - 模拟非虚拟方法给出编译错误
我需要编写 gtest 来测试一些具有非虚拟方法的现有代码,因此我正在使用以下源进行测试,但我得到了编译错误
package/web/webscr/sample_template_class3.cpp:在函数âint main()â中:package/web/webscr/sample_template_class3.cpp:64:错误:âclass Templatemyclassâ没有名为âgmock_displayâ的成员
sample_template_class3.cpp
c++ - 我如何(如果有的话)在堆上模拟一个模拟类?
我创建了一个测试模拟类,就像文档中描述的那样简单:
现在我想做这样的事情:
我不确定如何(如果有的话)使用 googlemock 来实现这样的事情。
c++ - 如何在没有实现的情况下测试纯虚拟类?
我有以下课程:
现在我想模拟这个类:
但这不起作用!我收到以下错误:
test/input/InputManagerTest.o:在函数
MockController::~MockController()': test/input/InputManagerTest.cpp:19: undefined reference to
IVirtualController::~IVirtualController()' 中 test/input/InputManagerTest.cpp:19:未定义对 `IVirtualController::~IVirtualController()' 的引用test/input/InputManagerTest.o:在
IVirtualController::IVirtualController()': test/input/../../src/input/IVirtualController.hpp:14: undefined reference to
IVirtualController 的函数 vtable 中测试/输入/InputManagerTest.o:在函数
MockController::MockController()': test/input/InputManagerTest.cpp:15: undefined reference to
IVirtualController::~IVirtualController()'测试/输入/InputManagerTest.o:(.rodata._ZTI14MockController[_ZTI14MockController]+0x10): 未定义对“IVirtualController 的类型信息”的引用
搜索告诉我“未定义对 vtable/typeinfo 的引用”错误是由缺少实现、虚拟方法声明后面缺少“= 0”或非虚拟析构函数引起的。IVirtualController 类没有实现,但这应该不是问题,因为 MockController 正在实现它,对吧?注释掉整个 InputManagerTest.cpp 模拟文件“解决”了这个问题,即使 IVirtualController 在另一个类中使用。
我该如何测试它?