Метод общего экземпляра OCMockito заглушки singleton

Я использовал OCMock для заглушки методов класса lvl, и это сработало хорошо. Теперь мне нужно добиться такого же поведения с OCMockito.

В OCMock у меня есть следующее:

_mock = mockClass([MySingleton class]);
OCMStub([_mock sharedSingleton]).andReturn(_mock);

В моем случае я должен заглушить метод sharedSingleton, потому что он используется в нескольких местах во время тестов.


person Skodik.o    schedule 29.03.2016    source источник
comment
Это очень помогло, спасибо!   -  person Steven Hepting    schedule 09.02.2017


Ответы (1)


Способность OCMock напрямую заглушать синглтоны реализуется с помощью метода swizzling. Для OCMockito я намеренно избегаю этого подхода. Я рекомендую вам использовать некоторую форму внедрения зависимостей для предоставления экземпляра.

Если вы этого не хотите, вы всегда можете смешать OCMock и OCMockito. Таким образом, вы можете продолжать использовать поведение OCMock, используя OCMockito для других целей.

person Jon Reid    schedule 31.03.2016
comment
Спасибо, Джон, я не могу использовать DI, поэтому для решения моей проблемы мне пришлось бы использовать метод swizzling... - person Skodik.o; 31.03.2016