Запутавшись в OCMock для синглтона, получите два метода, но ни один из них, на мой взгляд, не идеален.
Использование partalMockForObject.
Я хочу использоватьpartalMockForObject, чтобы сделать макет одноэлементного класса. Посмотрите следующий код, он работает хорошо, но недостаток в том, что синглтон [NSNotificationCenter defaultCenter] запомнит предыдущее имитационное поведение, а затем при вызове в другом месте произойдет сбой, неожиданный. Поэтому мой вопрос заключается в том, как я могу создать метод типа «removeAllExpectations», чтобы удалить все запомненные?
id aMock = [OCMockObjectpartalMockForObject: [NSNotificationCenter defaultCenter]];
[ожидание aMock] removeObserver: [OCMConstraint isKindOfClass: [WhereIsMyPhoneViewController class]]];
[[aMock verify];
Использование метода категории. См. http://twobitlabs.com/2011/02/mocking-singletons-with-ocmock/ упоминает еще один метод для одноэлементного макета, лично я предпочитаю частичноеMockForObject, вам не нужно имитировать все методы при модульном тестировании.
Отправил мой вопрос в группу разработчиков OCMock, но ответа пока нет, нужно ваше мнение умных парней. Любая идея или обсуждение будут оценены, спасибо заранее.