GET リクエストを行うメソッドをテストしたいと思います。
これは不自然な例です:
- (void)GET:(NSString *)URLString;
このメソッドの実装の詳細 (モック、期待値の設定、依存関係の検証など) について心配するよりも、GET 要求が行われたかどうかをテストできるようにしたいと思います。
NSURLProtocolでこれを行うことができると信じていますが、これまでの試みは成功していません。
たとえば、OCMock を使用すると、次のようになります。
id mockURLProtocol = (NSURLProtocol *)[OCMockObject mockForClass:[NSURLProtocol class]];
[NSURLProtocol registerClass:mockURLProtocol];
[[mockURLProtocol expect] canInitWithRequest:[OCMArg any]];
[MYClass GET:@"test"];
[mockURLProtocol verify];
[mockURLProtocol stopMocking];
[NSURLProtocol unregisterClass:mockURLProtocol];
canInitWithRequest が呼び出されないため、上記のテストは失敗します。
NSURLProtocol に期待値を設定して、リクエストが行われたことを確認するにはどうすればよいですか?