0
我试图模拟一个有两块的方法的类(AFHTTPSessionManager
),我怎样才能手动触发它们,例如,做两个测试,一个将使用第一个块实现和另一个测试将使用第二个块实现。两块完成的OCMock存根方法
[manager GET:path parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
//First block to trigger.
//logic code here
} failure:^(NSURLSessionDataTask *task, NSError *error) {
//Second block to trigger.
//logic code here
}];
目前,它会一直触发第二个块。
我嘲笑类是这样的:
NSError *error = [NSError errorWithDomain:NSLocalizedFailureReasonErrorKey code:-1009 userInfo:nil];
NSDictionary *responseObject = [NSDictionary dictionaryWithObjectsAndKeys:@"object", @"key", nil];
id mockAFHTTPSessionManager = OCMClassMock([AFHTTPSessionManager class]);
OCMStub([mockAFHTTPSessionManager alloc]).andReturn(mockAFHTTPSessionManager);
OCMStub([mockAFHTTPSessionManager initWithBaseURL:OCMOCK_ANY]).andReturn(mockAFHTTPSessionManager);
OCMStub([mockAFHTTPSessionManager GET:OCMOCK_ANY parameters:OCMOCK_ANY success:([OCMArg invokeBlockWithArgs:OCMOCK_ANY, responseObject, nil]) failure:([OCMArg invokeBlockWithArgs:OCMOCK_ANY, error, nil])]);