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是的,很好,没有一次()
则«无调用»是有效的。我会更新我的答案。