【问题标题】:Testing Reactive Cocoa HTTP request with Objective-C使用 Objective-C 测试 Reactive Cocoa HTTP 请求
【发布时间】:2015-09-07 14:32:03
【问题描述】:

在 DataManager.m 中,如果成功,我的函数会返回响应对象:

+(RACSignal *)signalVerifyPin:(NSString *)pin
{
    NSString *urlBase = [DataService buildUrl:@"checkpin?pin="];
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    return [RACSignal createSignal:^RACDisposable *(id subscriber) {


        [manager GET: [NSString stringWithFormat:@"%@%@", urlBase, pin]  parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
            NSLog(@"JSON: %@", responseObject);

            NSDictionary *response = [responseObject objectForKey:@"response"];

            [subscriber sendNext:responseObject];
            [subscriber sendCompleted];


        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"Error: %@", error);
            [subscriber sendError:error];
        }];

        return nil;
    }];
}

我很想测试这段代码,但我找不到任何关于如何测试的信息。

非常感谢!

【问题讨论】:

    标签: ios objective-c testing reactive-cocoa


    【解决方案1】:

    我想您是在问如何测试异步函数。为此,您可以使用 XCTestExpectation。

    例如

    - (void)testCheckPin
    {
        XCTestExpectation *expectation =
            [self expectationWithDescription:@"Check Pin"];
    
        [[SomeClass signalVerifyPin:@"somePin"] subscribeNext:^(id x){
                XCTAssert(assertSomething);
            } error:^(NSError *){
               XCTAssert(assertSomething);
               [expectation fulfill];
    
            } completed:^{
              XCTAssert(assertSomething);
              [expectation fulfill];
        }];
    
    
        [self waitForExpectationsWithTimeout:5.0 handler:^(NSError *error) {
            if (error) {
                NSLog(@"Timeout Error: %@", error);
            }
        }];
    }
    

    希望这会有所帮助:)

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 2017-02-11
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 2020-03-06
      • 1970-01-01
      相关资源
      最近更新 更多