私は解決策を見つけたと思います。これは、このプル リクエストに追加され
たメソッドに基づいています: https://github.com/jonreid/OCMockito/pull/93givenVoid
残念ながらまだマージされていないため、このバージョンを自分でダウンロードしてビルドする必要があります:
https://github.com/lysannschlegel/OCMockito/tree/given_void
新しいメソッドを使用すると、次の方法でメソッド呼び出しの順序を確認できます。
- (void)testResetCameraState_resetsCameraView
{
// Arrange
[given([_cameraManagerMock previewLayer]) willReturn:_testLayer];
[givenVoid([self->_cameraViewMock resetPreview]) willDo:^id (NSInvocation *invocation)
{
[(MKTBaseMockObject*)self->_cameraViewMock reset];
return nil;
}];
// Act
[_cameraInteractor resetCameraState];
// Assert
[verifyCount(_cameraViewMock, never()) resetPreview];
[verifyCount(_cameraViewMock, times(1)) setPreviewLayer:_testLayer];
}
これにより、 の最初の呼び出し後にモックがリセットされresetPreview
ます。
そのため、その呼び出しの後に内容を確認できます。
resetPreview
最初の呼び出しの後に呼び出されることはありません。
setPreviewLayer
resetPreview の後に呼び出されます。
このreset
呼び出しは もリセットするgivenVoid() willDo:
ため、2 回目のreset
呼び出しでモックが再度リセットされることはありません。
これが役立つことを願って、幸せなコーディング:D