2016-03-23 2 views
0

Я создаю приложение, которое добавляет некоторые локальные уведомления. Это мой тестOCMockito/OCHamcrest проверить массив содержит свойство объекта

- (void)testFirstLogin { 

//some initials array 
NSArray *withoutFriends = @[@"a", @"b", @"c", @"e", @"f"]; 
NSArray *withFriends = @[@"v", @"w", @"x", @"y", @"z"]; 

//my service which add local notifications 
LocalNotificationService *service = [LocalNotificationService sharedInstance]; 
service.lastLoginDate = nil; 

//UIApplication mock 
UIApplication *application = mock([UIApplication class]); 
service.applictation = application; 

//method which adds notifications 
[service addNotificationScheduleFirstLoginWithNoFriendsArray:withoutFriends friendsExistArray:withFriends]; 

//In this method I create UILocalNotification 
/* 
UILocalNotification *localNotification = [[UILocalNotification alloc] init]; 
localNotification.alertBody = text; 
*/ 

//and add it to schedule 
//[self.applictation scheduleLocalNotification:localNotification]; 

[verifyCount(application, times(1)) scheduleLocalNotification:anything()]; } 

Это правильно и проверка успех. Но мне нужно проверить, является ли мое свойство объекта UILocalNotification alertBody находится в без друзей массив. Есть ли способ для этого?

+0

Знаете ли вы заранее, что такое 'alertBody'? Как '@" a "'? –

+0

В этом сценарии нет друзей, поэтому я знаю, что ** alertBody ** будет случайным значением из массива ** withoutFriends **. – milczi

ответ

1

Существует соглашатель isIn, который я вижу, это missing from the README. Вместе с совпадением hasProperty мы можем написать:

[verifyCount(application, times(1)) scheduleLocalNotification:hasProperty(@"alertBody", isIn(withoutFriends))]; 
+0

Спасибо! Он отлично работает! – milczi