0
2番目の引数として整数変数を取るOCMockフレームワークを使用して、以下のメソッドをモックしようとしています。私は同じスタイルで古いスタイルのOCMockスタブコールも試しました。現代の構文を使用すると、私が書いたコードは以下のようになります。現代的なスタイルのOCMockでignoringNonObjectArgsを使用するとクラッシュします
@interface Session : NSObject
- (Request *)RequestForURL:(NSURL *)url
flags:(unsigned int)flags
error:(NSError **)error;
@end
このセッションクラスは偽装されており、私はこの模擬的な方法から嘲笑されたリクエストを返したいと思います。
id session = OCMClassMock(Session.class);
id Request = OCMClassMock(Request.class);
OCMStub([[session ignoringNonObjectArgs] RequestForURL:(NSURL *)OCMArg.anyObjectRef flags:0 error:OCMArg.anyObjectRef]).andReturn(Request);
これはうまくコンパイルされます。しかし、呼び出し中にテストが実行されている間にクラッシュします。 RequestForURL 私は最新のOCMock構文を使用しています。私は何とか無視されていないフラグでエラーが発生すると思います。
:anyObjectRefは、[私の手のひらを顔に当てる]
正しい方法...参照であり、任意の* IDであり、ここで我々はIDが必要と私はREFを使用し、NSURLにキャストされましたOCMArg.anyではなく[OCMArg isKindOfClass:NSURL.Class]。 – kaushal