2016-11-17 1 views
0

метода подпись:OCMockito как захватить блок и сопоставить любые другие примитивные аргументы?

- (void)updateFeaturesButtons:(NSInteger)gameId 
       category:(FeatruesCategory)category 
       parentId:(NSInteger)parentId 
        success:(void (^)(NSDictionary* featuresJson))success 
        failure:(void (^)(NSError* error))failure 

Я стараюсь, чтобы захватить успех аргумента блока и игнорировать другие аргументы так:

HCArgumentCaptor* captor = [[HCArgumentCaptor alloc] init]; 
[verify(mockManager) updateFeaturesButtons:0 category:0 parentId:0 success:(id)captor failure:anything()]; 

Я просто хочу назвать успех блок с моей JSON:

SuccessBlock block = captor.value; 
block(json); 

Но я получаю только argument(s) are different! Ошибка. Что я могу сделать для других аргументов?

ответ

1

В документации OCMockito см. How do you specify matchers for non-object arguments?

Таким образом, вы должны будете указать

[[[[verify(mockManager) 
    withMatcher:anything() forArgument:0] 
    withMatcher:anything() forArgument:1] 
    withMatcher:anything() forArgument:2] 
    updateFeaturesButtons:0 category:0 parentId:0 success:(id)captor failure:anything()]; 
+1

Я прочитал документацию ocmockito, но я не вижу ни одного примера, чтобы соответствовать более 2 аргумента с 'withMatcher'. Он работает, спасибо! – ccnyou

 Смежные вопросы

  • Нет связанных вопросов^_^