0

是否可以忽略 Turtle Mock 的意外方法调用?在我的测试期间,模拟方法被多次调用。我想在每个测试中只检查一个带有特定参数的调用。现在我必须编写一个巨大的测试,我必须编写所有方法调用。

4

1 回答 1

2

期望选择算法描述了如何设置多个调用:

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

  • 寻找具有从左到右评估的有效参数约束的匹配项
  • 检查此匹配的调用计数是否未用完

因此,如果您设置一个您期望的和一个通用的,例如

MOCK_EXPECT( v.display ).once().with( 0 );
MOCK_EXPECT( v.display );

它应该使其他电话安静下来,同时仍确保您关心的电话将得到满足。

现在,如果您想强制执行调用的顺序,例如确保您感兴趣的调用首先发生,则必须使用序列,例如

mock::sequence s;
MOCK_EXPECT( v.display ).once().with( 0 ).in( s );
MOCK_EXPECT( v.display ).in( s );
于 2021-04-18T06:22:26.053 回答