Как заглушить метод класса в OCMock?
Я часто нахожу в своих модульных тестах Objective-C iPhone, что я хочу заглушить метод класса, например, NSUrlConnection's + sendSynchronousRequest: returningResponse: error: метод.
Упрощенный пример:
- (void)testClassMock
{
id mock = [OCMockObject mockForClass:[NSURLConnection class]];
[[[mock stub] andReturn:nil] sendSynchronousRequest:nil returningResponse:nil error:nil];
}
При запуске этого я получаю:
Test Case '-[WorklistTest testClassMock]' started.
Unknown.m:0: error: -[WorklistTest testClassMock] : *** -[NSProxy doesNotRecognizeSelector:sendSynchronousRequest:returningResponse:error:] called!
Test Case '-[WorklistTest testClassMock]' failed (0.000 seconds).
Мне было очень трудно найти какую-либо документацию по этому вопросу, но я предполагаю, что методы класса не поддерживаются OCMock.
Я нашел этот совет после большого количества Google. Это работает, но очень громоздко:http://thom.org.uk/2009/05/09/mocking-class-methods-in-objective-c/
Есть ли способ сделать это в OCMock? Или кто-то может придумать умный объект категории OCMock, который может быть написан для выполнения подобных задач?