NotificationManager.hOCMockObserver: неожиданное уведомление наблюдается
#import <Foundation/Foundation.h>
@interface NotificationManager : NSObject
-(void)postNotification;
@end
NotificationManager.m
#import "NotificationManager.h"
@implementation NotificationManager
-(void)postNotification
{
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:@"Some data" forKey:@"TestData"];
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:@"TestNotification" object:nil userInfo:userInfo]];
}
@end
испытания Единица измерения:
-(void)testNotification
{
id observerMock = [OCMockObject observerMock];
[[NSNotificationCenter defaultCenter]addMockObserver:observerMock name:@"TestNotification" object:nil];
[[observerMock expect] notificationWithName:@"TestNotification" object:[OCMArg any]];
NotificationManager * nm= [[NotificationManager alloc]init];
[nm postNotification];
[observerMock verify];
[[NSNotificationCenter defaultCenter] removeObserver:observerMock];
}
Я получаю сообщение об ошибке:
OCMockObserver: обнаружено неожиданное уведомление: NSConcreteNotification 0xfbbad70 {name = TestNotification; userInfo = { TestData = "Некоторые данные"; }}
Если я отправляю уведомление без объекта userInfo (только нуль), тестовые работы. Может кто-нибудь объяснить, почему?
Это очень хорошо спроектированный вопрос. Мне потребовалось всего несколько секунд, чтобы воссоздать вашу проблему с кодом, который вы опубликовали. –