Turtle Mock:如何忽略意外来电?

Turtle Mock: How to ignore unexpected calls?

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

The expectation selection algorithm 介绍如何设置多次调用:

Each method call is then handled by processing the expectations in the order they have been defined :

  • looking for a match with valid parameter constraints evaluated from left to right
  • checking that the invocation count for this match is not exhausted

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

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

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

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

mock::sequence s;
MOCK_EXPECT( v.display ).once().with( 0 ).in( s );
MOCK_EXPECT( v.display ).in( s );