[英]Why is mocking with DI better than mocking objects in objective-c?
[英]What is ResourceFetcher in mocking an object in objective-C?
我正在跟踪乔恩·里德的这段视频 。 我一直遵循他的所有代码,直到出错为止。 我不知道ResourceFetcher
在哪里定义,为什么这对我不起作用! 这是代码:
在ViewController中:
-(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
在这里未知。 我谷歌,但什么都没有! 它是内置库吗?还是需要在某个地方定义它或导入一些库?
这是幻灯片的链接:
ResourceFetcher是包含fetchResources
方法的fetchResources
系统的名称。 这只是课程的虚构名称。 (顺便说一下,避免在视图控制器中直接进行网络调用。)请随时与我联系,以获取有关我的东西的问题。 这实际上不适用于StackOverflow。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.