问题标签 [hippomocks]

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 回答
159 浏览

unit-testing - ExpectCallFunc 或 OnCallFunc 是否有类似 Do() 的函数?

对于使用 ExpectCall 或 OnCall 模拟成员方法,您可以使用 Do 方法。但是对于静态函数,如果您尝试 Do,编译器会告诉您 Do 不是 Call 类的成员。有没有类似的机制?

0 投票
1 回答
218 浏览

c++ - 以参数为指针的模拟函数

我有一个功能:

我可以使用 Hippomock 来模拟这个函数并设置 的值ptr吗?就像是:mock.OnCallFunc(setData).With(int *ptr).Do({ *ptr = 5;});

所以我以后可以做这样的事情

0 投票
1 回答
104 浏览

c++ - 如何在 .Do() 中执行两条指令?

我想在 .Do() 中执行两条指令。

我不想创建附加功能。

我想做类似的事情:

(这不起作用。)

我不想拥有(但有效的是)是:

0 投票
2 回答
283 浏览

c++ - 为什么使用多重继承时我的 Hippomock 期望失败

我正在使用 Hippomocks 并有一个实现通用接口的类。当我对这门课寄予期望时,我没有得到预期的行为。

这是我最小的“工作”示例

我希望这个测试能够顺利通过。但是测试失败并显示以下消息(稍作编辑以删除项目名称):

0 投票
0 回答
49 浏览

c - 如何从 C 中的宏之类的函数中仅提取已定义函数的名称?

假设我想要 2 个松散耦合的模块。第一个模块依赖于另一个模块的接口。我想通过为接口引入定义来解耦它们。

在 module1_cfg.h

在 module1.c 中,我将使用此定义来访问另一个模块。

在 module2.c 中,我将实现这个功能:

这种解耦策略非常有效,直到我想为 module1 编写单元测试。如果我想用 Hippomocks 编写单元测试,它们看起来像这样:

但是现在我对 module1 的单元测试取决于 module2。是否有可能在单元测试中使用引入的函数,如宏(FUNC1_MODULE2),但有一些宏魔术省略括号,所以我可以将定义的函数指针传递给 hippomocks?我想坚持使用宏之类的功能并避免在真实代码中使用对象宏来重新定义函数,但会使用单元测试中必要的任何技巧来摆脱括号。

谢谢您的帮助!

0 投票
2 回答
76 浏览

parameter-passing - Hippomocks 指针参数 - 提供输入,检查输出

我有一个函数,它需要在指针参数中输入缓冲区长度,然后将读取的字节数放入与输出相同的参数中。现在在我的单元测试中,我尝试使用 Hippomocks 模拟它,并想检查是否使用正确的输入值调用了该函数,同时提供不同的输出值。我怎么能做到这一点?谢谢!

0 投票
0 回答
62 浏览

c++ - 使用“In”参数修饰符

我最近发现,类似于“Out”参数修饰符(我没有更好的描述),存在一个“In”修饰符。

例子:

被测函数的定义:

在测试代​​码中:

预期的行为是将 6 分配给 localValue2。现在我的问题:

我理解并欣赏“Out”修饰符——在这种情况下,someFunc 通常会将内部计算的返回值写入变量 value1,我们可以使用“Out”为我们的模拟实现这一点。但是在应用“In”时增加了什么功能?

对我来说,这听起来像是一个输入参数,类似于离开“In”: