2017-07-06 2 views
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構文を使用しています。私は何とか無視されていないフラグでエラーが発生すると思います。

答えて

0

まあ、私の愚かな間違いの一つが判明しました。

使用できる
OCMStub([[session ignoringNonObjectArgs] RequestForURL:OCMArg.any flags:0 error:OCMArg.any]).andReturn(Request); 
+0

:anyObjectRefは、[私の手のひらを顔に当てる]

正しい方法...参照であり、任意の* IDであり、ここで我々はIDが必要と私はREFを使用し、NSURLにキャストされましたOCMArg.anyではなく[OCMArg isKindOfClass:NSURL.Class]。 – kaushal

関連する問題