问题标签 [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 时的 SEH 异常
我开始将 googlemock 与 googletest 一起使用,但遇到了我无法弄清楚的 SEH 异常。
错误信息是:
我已经阅读了一些关于 SO 和其他地方的类似问题,但还没有为这样一个简单的例子找到答案。
即这发生在我的真实代码上,但我也在下面非常简单的示例中重现了错误。我正在使用 MSVC2008 构建。
重现错误的代码:
我从控制台的测试输出:
我正在使用自己的主要功能如下:
我猜我在这里犯了一个非常基本的错误,谁能看到我哪里出错了?谢谢!
[原始编辑以使代码和控制台输出匹配]
c++ - 如何在 C++ 中存根/模拟非指针成员变量?
许多关于单元测试的网站都说要提取接口和接口代码(这是有道理的),但这需要通过指针使用多态性。是否可以在没有指针的情况下完成此操作,因此我不必修改生产代码?我宁愿不使用指针和管理内存。
- 允许条件编译。
- 我专门为我的存根/模拟使用 gmock。
我研究过的一些事情是:
- 使用参考
- 涉及编写特殊的复制构造函数或使其不可复制
- 仍然需要用 new/delete 来管理内存
- 不确定这是否会导致不可预见的问题
- 通过代码生成创建指针包装类的集合。界面保持不变,但添加了一些测试方法。
- 似乎它会工作,但需要保养
- 我在下面的意思的例子
请注意 gmock 模拟对象是不可复制的,因此我不能构造函数注入它们。(https://groups.google.com/forum/#!topic/googlemock/GD73UXjQowE/discussion)
问题示例
指针包装类示例
...
...
c++ - 是否可以使用 Google Mock (gmock) 捕获参数?
我打算使用 Google Mock。我需要捕获一个对象引用,以便随后可以从该对象调用一些方法。
Google Mock 是否有任何捕获能力?如果没有,C++ 单元测试的其他选择是什么?一种选择是创建我自己的模拟类来捕获对象。
我正在寻找类似于 Java 的EasyMock的东西。示例(不是真正的代码):
c++ - 对 Google Mock 返回的引用所做的更改可以反映在原始值中吗?
对 Google Mock 返回的引用所做的更改可以反映在原始值中吗?
示例测试代码(使用 CppUnit 作为单元测试框架):
示例代码:
我的测试表明这不会更新 的值i
,但谷歌对ReturnRef
and的描述ReturnRefOfCopy
似乎意味着这应该有效,即
- ReturnRef(variable) - 返回对变量的引用。
- ReturnRefOfCopy(value) - 返回对 value 副本的引用;副本与动作一样长。
相反,它似乎ReturnRef
也返回了对副本的引用。有没有办法使用 Google Mock 来获得这种行为?
googlemock - 使用 googlemock 将参数传递给 ReturnNew
如何模拟返回一个新对象的方法,该对象的构造函数将方法的参数之一作为它自己的参数?
在上面的示例中,我想使用最初传递给 的参数,而不是new ObjectB()
用作 的参数。ReturnNew<ObjectA>()
_
MockedMethod
c++ - Google Mock Actual function call count doesn't match EXPECT_CALL
I am new to Google Mock and was trying my hand with this code, I also checked this link.
Actual function call count doesn't match EXPECT_CALL(*mock, display())
but was not able to get proper input.
Base.cc
Base_unittest.cc
I am getting error:
Actual function call count doesn't match EXPECT_CALL(obj, get())...
Actual function call count doesn't match EXPECT_CALL(obj, set(2,"hello"))...
So please help and if any tutorials for newbies please refer.
c++ - 将 wxString 与 Google Mock 一起使用
有没有人在使用 Google Mock 和 wxWidgets 时遇到过运气?我有一个类 Foo ,其设置器在签名中对 wxString 进行 const 引用,如下所示:
然后我继续像这样模拟 Foo:
我的其他模拟效果很好,但是它不喜欢 wxString 参数。当我编译时,我看到以下内容:
要点是 Google Mock 无法确定调用哪个 operator() 函数,因为 wxUniChar 提供的 operator() 函数没有映射到 Google Mock 所期望的。我在“long long int”和“testing::internal::BiggestInt”转换中看到了这个错误。
c++ - 谷歌模拟析构函数
我正在尝试熟悉 Google 的模拟框架,以便我可以更轻松地将一些 TDD 应用到我的 C++ 开发中。我有以下界面:
我想验证在删除实例时是否调用了析构函数。所以我有以下 MockSymbol 类:
注意:我在上面省略了包含保护,但它们在我的头文件中。
我还没有达到我实际测试任何东西的地步。我有以下内容:
当我执行我的测试运行程序时,我的其他测试会按照我的预期执行并通过。但是,当执行上述测试时,我收到以下错误:
SymbolTableTests.cpp:11: EXPECT_CALL(*mockSymbol, Die()) 调用分段错误(核心转储)
在过去的几个小时里,我一直在搜索谷歌并尝试不同的东西,但要知道是否有用。有没有人有什么建议?
googletest - 如果在 Google Mock Framework 中复制了模拟调用,有什么好方法可以检查它
我使用 Google Test 和 Google Mock 进行单元测试,并且需要检查对象的调用,该调用被放置在 std::vector 中。像这样:
我将不胜感激有关完成此任务的任何提示。
c++ - 如何在 googlemock 中创建部分(混合)模拟?
当您需要调用真实对象的功能时, Google 建议将调用委托给父对象,但这并不能真正创建部分(混合)模拟。调用真实对象时,任何方法调用都是真实对象的调用,而不是模拟对象的调用,您可能已经在其上设置了操作/期望。如何创建仅将特定方法委托给真实对象的部分模拟,以及对模拟对象的所有其他方法调用?