Search code examples
iosobjective-c-blocksafnetworkinggh-unit

compatibility between GHUnit and AFNetWorking


Hi, i try to create a unit test using the GHUnit, but i have an exception, i think its a problem of compatibility between the AFNetWorking and GHUnit
exception 'GHTestFailureException', reason: 'failed' * First throw call stack: (0x1de4012 0x163fe7e 0x1e6cfb1 0x2a4c1 0x2f20 0x137a4 0x191553f 0x1927014 0x19177d5 0x1d8aaf5 0x1d89f44 0x1d89e1b 0x21777e3 0x2177668 0x7b065c 0x1f3c 0x1e95) libc++abi.dylib: terminate called throwing an exception

  NSURL *url = [NSURL @"https://www.myWebsite.com"];
        NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];

        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:theRequest];


        [operation setAuthenticationChallengeBlock:^(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge) {
            NSURLCredential *newCredential = [NSURLCredential credentialWithUser:@"login" password:@"password" persistence:NSURLCredentialPersistenceForSession];
            [challenge.sender useCredential:newCredential forAuthenticationChallenge:challenge];
        }];

            NSLog(@"Response from %@",response);

        } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

            GHFail(@"failed"); }];


        [operation start];
        [operation waitUntilFinished];

Solution

  • You're probably going to want to look around for GHUnit asynchronous testing.

    Examples:

    https://gist.github.com/levigroker/1643797

    http://vladimir.zardina.org/2010/11/testing-asynchronous-code-with-ghunit/ http://samwize.com/2012/11/25/create-async-test-with-ghunit/ http://samwize.com/2012/10/03/sentestingkit-does-not-support-wait-for-blocks/

    Also there's a huge thread about this on AFNetworking's issues

    https://github.com/AFNetworking/AFNetworking/issues/466