Я часто нахожу в своих модульных тестах iPhone Objective-C, что я хочу, чтобы выровнял метод класса, например. NSUrlConnection + sendSynchronousRequest: returnResponse: 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.
Я нашел этот совет после многих Googling. Он работает, но очень громоздкий: http://thom.org.uk/2009/05/09/mocking-class-methods-in-objective-c/
Есть ли способ сделать это в OCMock? Или кто-то может подумать о умном объекте категории OCMock, который можно было бы написать для выполнения такого рода вещей?