我正在关注乔恩·里德的这段视频。我一直遵循他的所有代码,直到我遇到错误。我不知道ResourceFetcher
在哪里定义以及为什么这对我不起作用!这是代码:
在视图控制器中:
-(void) fetchResources
{
NSString *string = [NSString stringWithFormat:@"%@weather.php?format=json", BaseURLString];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:string
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject){
NSLog(@"%@",(NSDictionary *)responseObject);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"Error in retrieve data");
}
];
}
在MockAFNetworkingGET中:
@implementation MockAFNetworkingGET
-(AFHTTPRequestOperation *) GET : (NSString*) URLString
parameters:(NSDictionary *)parameters
success:(void (^)(AFHTTPRequestOperation * operation, id respondObject)) success
failure:(void (^)(AFHTTPRequestOperation * operation, NSError *error))failure
{
self.callCount += 1;
self.URLString = URLString;
self.parameters = parameters;
self.success = success;
self.failure = failure;
return self.fakeReturnValue;
}
@end
在 ResourceFetcherTests 中:
#import <XCTest/XCTest.h>
#import "MockAFNetworkingGET.h"
#import "ViewController.h"
@interface ResourceFetcherTests : XCTestCase
@end
@implementation ResourceFetcherTests
-(void) testFetchResources_shouldCallGet
{
id mockGet = [[MockAFNetworkingGET alloc]init];
ResourceFetcher *sut = [[ResourceFetcher alloc] initWithGETManager:mockGet];
//ResourceFetcher is not existing and giving me compiler error!!
}
@end
我已经将教程中的所有代码复制并粘贴到此处。 这里不知道ResourceFetcher
。我用谷歌搜索,但什么也没出现!它是库中的构建还是我需要在某处定义它或导入一些库?
这是幻灯片放映的链接:
https://speakerd.s3.amazonaws.com/presentations/dbce1540217c01328c641a1ab62a9337/Controlling_Dependencies_4-3.pdf
ResourceFetcher 是包含 fetchResources
方法的受测系统的名称。它只是类的虚构名称。 (顺便说一下,避免在视图控制器中使用直接网络调用。请随时与我联系以获取有关我的东西的问题。这并不适合StackOverflow。