9
OCMockはクラスメソッドをモックするための素晴らしい構文を提供しますが、クラスメソッド呼び出しを実際のクラスオブジェクトに転送できますか?OCMockは元のクラスメソッドに転送します
self.connectionMock = [OCMockObject mockForClass:NSURLConnection.class];
[[[[self.connectionMock stub] andDo:^(NSInvocation *invocation) {
NSURL *url = [invocation getArgumentAtIndexAsObject:2];
NSLog(@"Passing through mock: %@", url);
} ] andForwardToRealObject] connectionWithRequest:OCMOCK_ANY delegate:OCMOCK_ANY];
問題はandForwardToRealObject
は部分的にしか機能しません。私は自分自身を振る舞うことができますが、OCMockを使って元のクラスメソッドを呼び出すのは簡単な方法ですか?
があなたの代わりにオブジェクトのクラスと部分的モックを使うことはでき –
@JoshTheGeek残念ながら 'クラス? 'は' NSObject'ではないので、部分モックを作成することはできません。インスタンス上に部分モックを作成しようとすると、クラスメソッドを検索していないため、クラスメソッドを転送することができませんセレクタ。 –
別のアプローチがあるかもしれません。あなたがしようとしていることをもっと広く説明できますか? EST(東部基準時? –