相关疑难解决方法(0)

假装,嘲弄和捣蛋有什么区别?

我知道我如何使用这些术语,但我想知道是否有单独测试的伪造,模拟存根的可接受定义?你如何为你的测试定义这些?描述您可能使用每种情况的情况.

以下是我如何使用它们:

:一个实现接口但包含固定数据而没有逻辑的类.根据实施情况,简单地返回"好"或"坏"数据.

Mock:一个实现接口的类,允许动态设置值以返回/异常从特定方法抛出,并提供检查是否已调用/未调用特定方法的功能.

存根:类似于模拟类,但它不提供验证方法是否已被调用/未调用的能力.

模拟和存根可以由模拟框架手动生成或生成.伪造的类是手工生成的.我主要使用模拟来验证我的类和依赖类之间的交互.一旦我验证了交互并且正在通过我的代码测试备用路径,我就会使用存根.我主要使用假类来抽象出数据依赖性,或者每次使用模拟/存根都太繁琐.

unit-testing terminology mocking stub definition

650
推荐指数
11
解决办法
17万
查看次数

舍入整数除法(而不是截断)

我很想知道如何将数字舍入到最接近的第十个整数.例如,如果我有:

int a = 59 / 4;
Run Code Online (Sandbox Code Playgroud)

以浮点计算的14.75; 如何将数字存储为"a"中的15?

c math int rounding integer-division

67
推荐指数
9
解决办法
13万
查看次数

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

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

另一方面,我想避免定义一个序列,因为它会决定某个顺序,这是一个我希望保持自由的实现细节.

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

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

googlemock

8
推荐指数
1
解决办法
9384
查看次数

交错 EXPECT_CALL() 和对模拟函数的调用

谷歌文档模拟说:

重要提示: Google Mock 要求调用模拟函数之前设置期望值,否则行为是undefined。特别是,您不能将 EXPECT_CALL() 和对模拟函数的调用交织在一起。

有谁知道这个限制背后的任何细节?我有许多单元测试肯定违反了这条规则,但是似乎运行正常。

c++ unit-testing expectations googletest googlemock

8
推荐指数
2
解决办法
1407
查看次数

google mock - 怎么说“必须使用某个参数调用一次函数,但可以使用不同的参数调用多次”?

我需要检测给定的函数是否已使用一组特定的参数被精确调用一次。

EXPECT_CALL(Mock_Obj, func("abc")).Times(1)

但是可以使用不同的参数多次调用该函数。

我该如何表达?

c++ unit-testing googletest googlemock gmock

8
推荐指数
1
解决办法
3362
查看次数