2016-01-16 1 views
0

Я пытаюсь написать модульный тест для моего проекта, который я использую AFNetworking in.I использовать следующую операцию по моей просьбе:испытание блока для AFNetworking сообщения запроса

- (void)testRegisterRequest{ 
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
[manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    XCTAssert(Result,"Register failed!"); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    //Failure 
} 

Как это асинхронное он никогда не проверить мой XCTAssert линия. Я много искал, но мне не удалось найти учебник или пример для этих тестовых примеров. Пожалуйста, помогите мне с помощью любой ссылки на учебник или подсказки. Заранее спасибо

+0

Вы пишите приемочное испытание сервера? (Полностью действительная вещь, чтобы сделать.) –

+0

@JonReid Я хочу убедиться, что мой API работает правильно и дает мне результат, для некоторых запросов я проверяю его успех, а для некоторых других я проверяю сбой. – Niloufar

ответ

1

XCTestExpectation является действительным подходом. Другие рамки тестирования предлагают разные способы. Например, мы можем проверить ответ успеха, используя OCHamcrest вроде этого:

- (void)testRegisterRequest 
{ 
    __block id response = nil; 

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    [manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
     response = responseObject; 
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    }]; 

    assertWithTimeout(5, thatEventually(response), is(notNilValue())); 
} 

Вы, вероятно, проверить реакцию на его атрибутов, а не просто проверка, что он не является нулевым значением.