Так что мне нужно проверить, отправлен ли NSNotification
. Я попробовал следующий код, чтобы подсмотреть аргумент.Тестирование NSNotification в Kiwi iOS
[[NSNotificationCenter defaultCenter] stub:@selector(postNotification:)];
__block KWCaptureSpy *notificationSpy = [[NSNotificationCenter
defaultCenter] captureArgument:@selector(postNotification:) atIndex:0];
[[theValue(notificationSpy.argument.name) should] equal:theValue(SOME_NOTIFICATION)];
но проблема с этим связана с тем, что он асинхронен, аргумент не всегда фиксируется перед тестированием. Я не могу добавить shouldEventually
для имени notificationSpy.argument.name либо, поскольку он выдает NSInternalConsistencyException
для доступа к аргументу перед захватом.
Я также пробовал, [[SOME_NOTIFICATION should] bePosted];
и он потерпел неудачу также.
Я все еще получаю исключение NSInternalConsistencyException, даже когда я использую expectFutureValue, как вы уже упоминали. – Vig
Кроме того, просто интересно, как вы будете следить за несколькими уведомлениями? скажем, я опубликовал два разных уведомления notificationSpy.argument.name будет иметь только первое право, как бы я шпионить за вторым? – Vig
Хм ... Я проверил код, прежде чем отправлять его, и это сработало для меня. Какой SDK вы используете? – Cristik