Как издеваться над классом AFHTTPClient и методом теста getPath: параметры: success: failure :?

Я новичок в инфраструктуре AFNetworking. Я выполнил простой запрос GET на сервер.

@implementation MyClass … - (void)signInWithUsername:(NSString *)username andPassword:(NSString *)password withBlock:(SignInBlock)block { [client getPath:@"test.json" parameters:Nil success:^(AFHTTPRequestOperation *operation, id responseObject) { block(YES, [responseObject objectForKey:@"access_token"]); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { block(NO, nil); }]; } 

объявление блока:

 typedef void (^SignInBlock)(BOOL success, NSString *token); 

Я не знаю, как правильно AFHTTPClient этот объект AFHTTPClient чтобы проверить, был ли SignInBlock блок из аргумента ( SignInBlock ) и с какими аргументами. Как я могу сделать это правильно?

Заранее спасибо.

Я сделал это.

 - (void)testTokenInBlockShouldBeNotNil { id mockClient = [OCMockObject mockForClass:[AFHTTPClient class]]; [[[mockClient expect] andDo:^(NSInvocation *invocation) { void (^successBlock)(AFHTTPRequestOperation *operation, id responseObject) = nil; [invocation getArgument:&successBlock atIndex:4]; successBlock(nil, @{@"access_token" : @"this_is_a_token"}); }] getPath:[OCMArg any] parameters:[OCMArg any] success:[OCMArg any] failure:[OCMArg any]] ; RKObjectManager *manager = [[RKObjectManager alloc] init]; manager.HTTPClient = mockClient; TokenBlock block = ^(NSString *token) { XCTAssertNotNil(token, @""); }; CTFAPIConnection *connection = [[CTFAPIConnection alloc] initWithManager:manager]; _accounts = [[CTFAPIAccounts alloc] initWithConnection:connection]; id mockAccounts = [OCMockObject partialMockForObject:_accounts]; [mockAccounts signInWithUsername:[OCMArg any] andPassword:[OCMArg any] withBlock:block]; } 

В вашем случае вам вообще не нужно высмеивать, просто утверждают, что правильные значения отправляются в ваш блок:

Рассмотрим Foo :

 - (void)signInWithUsername:(NSString *)username andPassword:(NSString *)password withBlock:(SignInBlock)block { if ([username isEqualToString:@"Ben"]) { block(YES, @"bentoken"); } else { block(NO, nil); } } 

Тест:

 - (void)testSignInWithUsername { SignInBlock testYes = (SignInBlock)^(BOOL *success, NSString *token) { STAssertTrue(success, @"Expected Ben to be true"); STAssertEqualObjects(token, @"bentoken", @"Expected the ben token"); }; Foo *foo = [Foo new]; [foo signInWithUsername:@"Ben" andPassword:@"Whatever" withBlock:testYes]; } 
  • Можно ли использовать OCMock для подделки методов класса и протокола?
  • Разница между «NICE» «PARTIAL» и «MOCK» в OCMock ios7
  • Можно ли использовать OCMock с NSURLConnection для ввода имитируемых данных ответа сервера?
  • Почему я не могу заглушить этот метод GKTurnBasedParticipant с помощью OCMock?
  • OCMock-заглушка - выбранное свойство
  • Как использовать XCTest & OCMock для тестирования метода, который возвращает блок?
  • Невозможно использовать метод Stub «title», потому что такой метод не существует в издеваемом классе OCMock
  • Может ли OCMock высмеять класс таким образом, чтобы он автоматически использовал посмеянный экземпляр в тестируемом коде без его инъекции
  • Издевательство над классом класса наследуется от объекта SDK
  • Почему мой OCMock ожидает, и в IOS 5 завершится сбой?
  • Interesting Posts

    Облицовочная проблема при получении токена в ios

    Создать список временного интервала Swift

    UIAlertController, как добавить значение тега в obj c

    iOS авто макет не отображает кнопку в фиксированном пространстве снизу

    В ECSlidingViewController, как отключить верхний вид от сползания экрана

    Ограничения VFL в быстром: сбои из-за отсутствия контроля

    Не удается разрешить DNS-адрес с помощью CFHostStartInfoResolution, если не в главной очереди

    Доступны ли FSEvents в IOS?

    Обеспечить динамическую инициализацию на основе класса, переданного как параметр в Swift

    Пользовательский «плавающий» UITableViewCells

    Различные наборы ограничений автоматической компоновки для различной ориентации

    Загрузите большое количество PHAssets из iCloud

    Ошибка проверки приложения iTunes Store при использовании подкачки Google / CloudMessaging

    Невозможно присвоить значение типа Int элементу массива Int в Swift 2.1

    что не так с моей петлей – петля через представления

    Давайте будем гением компьютера.