问题标签 [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.

0 投票
1 回答
5305 浏览

testing - 谷歌模拟 - 使用 ::testing::An()

我在使用以下Google Mock声明时收到编译错误:

错误是:

我究竟做错了什么?


更新:

我正在使用VS2010。

someFunction 的声明是:

An() 是具有以下定义的 Google Mock通配符匹配器:

结构的简化但具有代表性的版本是:

0 投票
3 回答
3239 浏览

c++ - Googlemock:如何验证对象中数组中的元素?

我有一个小班:

我只想使用 googlemock 期望验证有效载荷的前两个元素。我不能使用 ElementsAreArray,因为它会检查有效负载的长度和期望是否相同。到目前为止,我的期望看起来像这样:

有任何想法吗?模拟类如下所示:

0 投票
3 回答
8748 浏览

c++ - Google Mock:Return() 值列表

通过 Google Mock 的 Return(),您可以返回调用模拟函数后将返回的值。但是,如果某个函数预计会被多次调用,并且每次您希望它返回不同的预定义值。

例如:

你如何让aCertainFunction每次返回一个递增的整数?

0 投票
1 回答
684 浏览

c++ - Google Mock 是否计算对析构函数中模拟函数的调用?

Google Mock 是否计算在被测对象的析构函数中对模拟函数的调用?

0 投票
1 回答
1522 浏览

c++ - MockPP 和 Google Mock 的优缺点

以下模拟框架如何相互比较?与 Java 同类产品相比,它们的主要限制是什么?

0 投票
1 回答
884 浏览

makefile - 不生成所有预期的库

我正在尝试制作“google mock”,但我只得到一个库:gmock_main.a

为什么 gmock.a 没有被生产?生成四个 .o 文件。

谢谢,

巴里。

0 投票
2 回答
1689 浏览

visual-studio-2010 - Visual Studio 2010 和 MSTest (C++/CLI) 的 GoogleMock 问题

我们的产品以前在 Visual Studio 2008 中构建并使用 GoogleMock 1.5.0。

现在,将我们的产品移植到Visual Studio 2010后,任何使用 GoogleMock 的单元测试 DLL 都不会加载到 Visual Studio 的测试视图中,因此无法执行。

我们的生产代码是用从 C++ DLL 导出的本机 C++ 类编写的。

我们的单元测试是用 C++/CLI 编写的,因此它们可以直接托管在 Visual Studio 中。C++/CLI 单元测试运行我们的原生 C++ 类,而 GoogleMocks 以前在这种情况下玩得非常开心。

我们将 GoogleMock 构建到在运行时使用多线程 DLL 的静态库中。我们所有的生产代码也使用多线程 DLL。

我们已经尝试过 GoogleMock 1.5 和 1.6 RC,它们都在 VS2010 中重建。但是这两个版本的 GoogleMock 都会出现问题。

要重现,只需:

  1. 创建一个新的 C++ 单元测试项目
  2. 添加gmock.libgmock_main.lib作为链接器输入
  3. #include <gmock/gmock.h>在 C++/CLI 单元测试头文件的顶部。

该项目将构建良好,但 VS 测试视图无法加载新的单元测试 DLL。如果您注释掉gmock.h包含,DLL 将加载到测试视图中,并且它的测试装置将执行。

我希望另一位 VS2010 开发人员遇到此问题并可以提出修复建议。

我的设置:

  • 视窗 7 x64
  • Visual Studio 2010,服务包 1
  • GoogleMock 1.5 或 1.6 RC
  • 我们的应用程序构建为 32 位(Win32 和 x86)。
  • 我们所有的 C++ 代码,包括 GoogleMock,都是使用 VS2010 的 vc100 编译器编译的。我们的 C++/CLI 代码也是为 .NET 4.0 构建的。

谢谢。

0 投票
1 回答
4558 浏览

c++ - c ++ googlemocks:获取未初始化调用的堆栈跟踪

模拟类看起来像这样: struct MockClass { MOCK_METHOD0( foo, void () ); };

如果我忘记在模拟对象上设置预期调用,我会得到如下信息:

并且堆栈跟踪为空。

那么,为了获得堆栈跟踪,必须做什么?

0 投票
3 回答
4528 浏览

dependency-injection - 使用依赖注入模拟 C++ 类

假设您正在测试类A,它有一个依赖注入B其中的依赖注入为C.
所以你模拟B但它唯一的构造函数需要注入C,所以你是否也必须模拟C并将模拟注入C模拟B然后才将其注入A
如果您有 5 个连续的受抚养人怎么办?

有哪些替代方案?

我使用Google Mock,所以一个具体的答案也会有所帮助。

0 投票
2 回答
13717 浏览

googletest - Google Mock:对具有不同参数的同一功能的多重期望

考虑某个模拟函数预计会被多次调用的情况,每次都在某个参数中使用不同的值。我想验证该函数确实被调用一次,并且在某个值列表中的每个值(例如 1、2、5)中只调用一次。

另一方面,我想避免定义一个序列,因为这将决定一个特定的顺序,这是一个我想保持自由的实现细节。

这种情况下是否有某种匹配器或其他解决方案?

我不确定这是否会以任何方式影响解决方案,但我确实打算使用 WillOnce(Return(x)) 和上面列表中的每个值不同的 x。