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?
Class
не являетсяNSObject
, поэтому вы не можете создать для него частичный макет. Если вы попытаетесь создать частичный макет для экземпляра, он не сможет перенаправить метод класса, поскольку он не ищет селекторы методов класса. - person Ben Flynn   schedule 25.10.2013