什么是 ResourceFetcher 在 objective-C 中模拟对象



我正在关注乔恩·里德的这段视频。我一直遵循他的所有代码,直到我遇到错误。我不知道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。

最新更新