Я пытаюсь создать макет для AFHTTPRequestOperationManager AFNetworking, используя OCMock.
Вот что у меня есть:
id mockRequestManager = OCMClassMock([AFHTTPRequestOperationManager class]);
OCMStub([mockRequestManager manager]).andReturn(mockRequestManager);
[myObject methodThatUsesAFHTTPRequestOperationManager];
Я делал то же самое раньше для других синглетонов (например, [NSNotificationCenter defaultCenter]
), но с AFHTTPRequestOperationManager я не возвращаю издевательский объект, когда [AFHTTPRequestOperationManager manager]
вызывается из [myObject methodThatUsesAFHTTPRequestOperationManager]
. Я всегда возвращаю объект экземпляра AFHTTPRequestOperationManager.
Я что-то пропустил? Есть ли какие-то детали реализации AFHTTPRequestOperationManager, которые мешают этому работать?
ИЗМЕНИТЬ
Итак, после просмотра кода AFHTTPRequestOperationManager оказывается, что на самом деле это не синглтон, а просто метод класса, который возвращает новый объект AFHTTPRequestOperationManager. Однако я до сих пор не понимаю, почему заглушка метода класса не возвращает мой фиктивный объект вместо создания нового.