Я использую OCMock для создания макетов в своих тестах для своего приложения iOS, и я хотел бы создавать макеты протоколов, которые не реализуют все необязательные методы.
Если непонятно, что я имею в виду... вот код:
// Protocol definition
@protocol MyAwesomeProtocol
- (void)doThatRequiredThing;
@optional
- (void)doThatOptionalThing;
@end
...
// In a test
id mock = [OCMockObject mockObjectForProtocol:@protocol(MyAwesomeProtocol)];
// This should return YES:
[mock respondsToSelector:@selector(doThatRequiredThing)];
// This should return NO:
[mock respondsToSelector:@selector(doThatOptionalThing)];