Метод единого экземпляра заглушки OCMockito
Я использовал OCMock для заглушения методов класса lvl, и он работал хорошо. Теперь мне нужно добиться того же поведения с OCMockito.
В OCMock у меня есть следующее:
_mock = mockClass([MySingleton class]);
OCMStub([_mock sharedSingleton]).andReturn(_mock);
В моем случае я должен заглушить метод sharedSingleton, потому что он используется в нескольких местах во время тестов.
1 ответ
Решение
Способность OCMock напрямую заглушать синглтоны осуществляется методом swizzling. Для OCMockito я намеренно избегаю такого подхода. Я рекомендую вам использовать какую-либо форму Dependency Injection для предоставления экземпляра.
Если вы не хотите этого, вы всегда можете смешать OCMock и OCMockito. Таким образом, вы можете продолжать иметь поведение OCMock, в то же время используя OCMockito для других целей.