Wie ich immer wieder erwarten, eine Reihenfolge der Aufrufe?

Schreibe ich einen test, um zu überprüfen, die Reihenfolge der Aufrufe auf einer Bildbearbeitungs-thread. Das entsprechende Stück von test-code sieht wie folgt aus:

Sequence s1, s2;
...
EXPECT_CALL(*mMockVideoSource, getFrame()).InSequence(s2).WillRepeatedly(Return(mFakeBuffer));
EXPECT_CALL(*mMockProcessor, processFrame(_,_)).InSequence(s2).WillRepeatedly(Return(0));
EXPECT_CALL(*mMockVideoSource, releaseFrame(_)).Times(AnyNumber()).InSequence(s2);
...

In diesem Fall die Reihenfolge der Aufrufe ist extrem wichtig. getFrame(), processFrame() und releaseFrame() muss aufgerufen werden, in dieser Reihenfolge. Leider ist der obige code ist nicht wirklich vollbringen, was ich will. Der obige code erlaubt getFrame() werden immer wieder aufgerufen, bevor der Anruf zu processFrame() und ein Aufruf an getFrame() nach releaseFrame() gilt als Fehler, da es unterbricht die Sequenz.

Gibt es eine Möglichkeit zu erwarten, dass eine bestimmte Reihenfolge der Aufrufe immer wieder? Ich interessiere mich nicht, wie oft die Sequenz ausgeführt wird, so lange, wie die Funktionen aufgerufen werden, um: Holen Sie sich -, Prozess -, release -, get -, Prozess -, release...

  • Warum sind Sie mit WillRepeatedly dann anstatt z.B. WillOnce?
  • Mein Ziel ist es, die Erwartungen zu halten, immer wieder. Wenn ich WillOnce, jeder Anruf wird nur zulässig sein, ein mal aufgerufen.
InformationsquelleAutor bstar55 | 2014-05-27
Schreibe einen Kommentar