Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 模拟海龟:如何忽略意外呼叫?_C++_Boost_Turtle Mock - Fatal编程技术网

C++ 模拟海龟:如何忽略意外呼叫?

C++ 模拟海龟:如何忽略意外呼叫?,c++,boost,turtle-mock,C++,Boost,Turtle Mock,是否可以忽略海龟模型的意外方法调用?在我的测试中,模拟方法被调用多次。我只想在每个测试中检查一个具有特定参数的调用。现在我必须编写一个庞大的测试,其中我必须编写所有方法调用。描述了如何设置多个调用: 然后,通过按照定义的顺序处理期望来处理每个方法调用: 查找从左到右计算的具有有效参数约束的匹配项 正在检查此匹配的调用计数是否已用尽 因此,如果您设置了一个您期望的和一个通用的,例如 MOCK_EXPECT( v.display ).once().with( 0 ); MOCK_EXPECT(

是否可以忽略海龟模型的意外方法调用?在我的测试中,模拟方法被调用多次。我只想在每个测试中检查一个具有特定参数的调用。现在我必须编写一个庞大的测试,其中我必须编写所有方法调用。

描述了如何设置多个调用:

然后,通过按照定义的顺序处理期望来处理每个方法调用:

  • 查找从左到右计算的具有有效参数约束的匹配项
  • 正在检查此匹配的调用计数是否已用尽
因此,如果您设置了一个您期望的和一个通用的,例如

MOCK_EXPECT( v.display ).once().with( 0 );
MOCK_EXPECT( v.display );
它应该让其他的电话安静下来,同时确保你所关心的那一个电话能得到满足

现在,如果您想要强制执行调用的顺序,例如,确保您感兴趣的调用首先发生,那么您必须这样做,例如

描述如何设置多个调用:

然后,通过按照定义的顺序处理期望来处理每个方法调用:

  • 查找从左到右计算的具有有效参数约束的匹配项
  • 正在检查此匹配的调用计数是否已用尽
因此,如果您设置了一个您期望的和一个通用的,例如

MOCK_EXPECT( v.display ).once().with( 0 );
MOCK_EXPECT( v.display );
它应该让其他的电话安静下来,同时确保你所关心的那一个电话能得到满足

现在,如果您想要强制执行调用的顺序,例如,确保您感兴趣的调用首先发生,那么您必须这样做,例如


你有一些代码要显示吗?通过粗略扫描文档,我猜您可以使用MOCK\u RESET/MOCK\u VERIFY显式获得免费通行证。如果您添加了一个小示例,我们可以看看您是否有一些代码要显示?通过粗略扫描文档,我猜您可以使用MOCK\u RESET/MOCK\u VERIFY显式获得免费通行证。如果你加上一个小例子,我们可以看看,谢谢你的提示。但是“一次”似乎是真正需要的,因为否则这个测试是绿色的:
classa{public:virtualvoidf(inta)=0;};MOCK_基类(AMock,A){public:MOCK_方法(f,1,void(int))};无效测试(A*A){A->f(5);A->f(66);A->f(7);}BOOST\u AUTO\u test\u CASE(StackOverflow\u SimpleTest){AMock-AMock;MOCK\u EXPECT(AMock.f)。使用(6);MOCK\u EXPECT(AMock.f);测试(&AMock)}
Ah是的,很好,没有
一次()
则«无调用»是有效的。我会更新我的答案。谢谢你的提示。但是“一次”似乎是真正需要的,因为否则这个测试是绿色的:
classa{public:virtualvoidf(inta)=0;};MOCK_基类(AMock,A){public:MOCK_方法(f,1,void(int))};无效测试(A*A){A->f(5);A->f(66);A->f(7);}BOOST\u AUTO\u test\u CASE(StackOverflow\u SimpleTest){AMock-AMock;MOCK\u EXPECT(AMock.f)。使用(6);MOCK\u EXPECT(AMock.f);测试(&AMock)}
Ah是的,很好,没有
一次()
则«无调用»是有效的。我会更新我的答案。