OCMock - 验证方法调用的顺序.还有其他方法吗?

e19*_*985 6 unit-testing ocmock ios

当我想在一个方法中验证模拟对象是否按特定顺序接收某些消息时,我会执行以下操作:

// sut is an instance of the class I am testing and myMock is a mock object injected in sut.
// I want to test that myMock sends messageA and then messageB, in that particular order.
[[[myMock expect] andDo:^(NSInvocation *invocation)
  {
      [[myMock expect] messageB];
  }]
 messageA];

 [sut methodToTest];

 [myMock verify];
Run Code Online (Sandbox Code Playgroud)

有没有更干净/更好的方法呢?提前致谢.

Chr*_*lay 15

您可以使用 setExpectationOrderMatters

[myMock setExpectationOrderMatters:YES];
[[myMock expect] messageA];
[[myMock expect] messageB];

[sut methodToTest];

[myMock verify];
Run Code Online (Sandbox Code Playgroud)