问题标签 [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++ - Google Mocks 测试输出到 XML 不起作用
我已经使用 Google Test 几个月了
(配置).xml
作为 VS2010 测试项目中的命令参数。这一直在努力将测试结果输出到xml。
我现在一直在添加 Google Mocks,我的测试和 Google Mocks 都在工作,但现在我没有在文件中得到测试结果。如何获取测试结果和模拟结果的 XML 文件?
我无法找到有关此的任何信息。
c++ - Google Mock 和 shared_from_this 出错?
我在我的测试中遇到以下错误:
未知文件:错误:在测试主体中抛出描述为“tr1::bad_weak_ptr”的 C++ 异常。
一次通过测试一行,我可以看到异常被抛出在我调用的一行:
我需要一个指向代码正在执行的对象的指针,因为我需要将对象设置为它的一个成员的观察者(使用 boost::signals 来实现观察者)。该代码在正常执行时似乎工作正常,但从我的测试代码中我得到了这个错误。
c++ - 为 gmock 自动生成模拟类
我正在使用gmock对C++ 代码进行单元测试。我没有使用gtest 框架。我正在使用 Visual Studio 2008 的内置测试框架。
现在我的问题是我必须手动为真实类编写模拟类来进行单元测试。例如,如果我有一个具有 5 个函数的类,那么我必须编写具有 5 个函数的 MockAClass。有什么方法可以自动生成这些类。
matcher - 用于输出参数的 googlemock 匹配器
我正在测试我的类是否使用正确的参数调用模拟类的方法。我已经建立了一个基本的期望:
这很好,但我也想验证这个论点。它是一个只有使用输出参数的访问器的对象:
如何定义一个匹配器来检查get_Value
放入的值aValue
?
c++ - 死亡测试中奇怪的堆检查器错误
我的一个使用模拟对象和死亡测试的 googletest 单元测试有问题。这是说明问题的最小化代码示例:
输出:
似乎 googlemock 在EXPECT_DEATH
断言之后立即检查堆上剩余的模拟对象,但在调用宏之前删除a
显然不是一个好的解决方案,因为a
可能在被调用的函数中使用。我实际上希望在测试套件解构结束时进行检查。我错过了什么?
c++ - 将方法参数传递给 googlemock 中的操作
我使用 Gmock 进行方法调用,它返回 QList heightsFromCsvResult 的元素作为 out 参数。这是当前工作的代码:
第一个参数 lineNumber 来自
是 heightsFromCsvResult.at(lineNumber) 的索引。
现在我尝试以更通用的方式使用 Gmock:
但是这段代码不起作用,因为 mockLineNumber 从来不是由 Gmock 编写的。但是 EXPECT_CALL 是满意的。
有人在代码中看到问题吗?
c++ - 如何使用 Google Mock 更改分配对象的类型?
我想通过测试分配对象的受保护变量来检查方法的行为。因此,我想为这个分配的对象注入一个模拟对象。我的问题是该对象是在此方法期间创建的,并且没有通过参数给出。
此方法应创建一个 ConfigurationForColor,在受保护的方法 buildConfigurationForColor(...) 中更改其上的受保护变量,并将对象分配给 MappingConfiguration。我想检查 configurationForColor 上的受保护变量。
我可以使用 Google Mock 将 configurationForColor 的类型更改为模拟对象吗?还是他们测试受保护变量的另一种可能性?
c++ - 如何在 C++ 中忽略动态链接库中的主要方法
在我们的应用程序中,我们使用了几个动态链接库。我们最近更新了其中一个库的版本。自这个新版本以来,该库的开发人员提供了一个 main 方法(只不过是打印 Hello World)。
问题是我们正在使用 GTest 和 GMock,它们会生成自己的 main 方法。当我们现在运行我们的测试二进制文件时,我们只是得到“Hello World”,所以我们采用了错误的 main 方法。
我们如何强制使用测试的主要方法?
更新:这似乎是一个 GMock/GTest 问题。main 方法通常是生成的,但情况并非如此,因为它现在找到了一个已经存在的 main 方法。
c++ - Google Mocked 成员函数中的 std::pair 参数无法编译
我有一个方法接口和一个模拟该接口的类。该方法采用单个参数。只有当该参数是类型时std::pair<Something, Something>
,它才会编译失败。我正在使用 MSVC 2010,所以问题可能是编译器或 STL 实现特定的,当然,除非问题与湿件相关,这是我的最佳猜测。我一定遗漏了一些明显的东西。就像纳米探针一样。
实际的测试用例不必取消注释,错误就会显现出来。
std::pair<>
目前,我通过将a包装来解决这个问题struct
,但这是次优的。
错误消息的长度相当不幸,但它可能会有所帮助:
c++ - 如何避免使用 Google Mock 指针?
在我们的项目中,我们使用 Google Mock,但在多个地方,我们在生产代码中进行构造,只是为了确保类是“可模拟的”。我们这样做是因为我们希望获得 Google Mock 的好处,但另一方面我们更希望拥有更优化的生产代码。以下情况是我们经常做的事情,并且想摆脱。
如您所见,这只是一个简化的示例,我省略了细节。基本上我们想摆脱 B 作为指针。我们将它作为指针的原因是我们可以在我们的测试代码中继承 B(模拟它)并使用该 setter 设置它。
有没有办法避免这种情况?我们不能让 B 在班级范围内吗?
谢谢