在多个类中,我使用 [NSApp delegate]
从我访问某些属性的位置获取我的主 AppDelegate。这按预期工作,但是当我单元测试使用它的代码时,这个委托(delegate)是nil。
我该如何在测试中处理这个问题?是否可以编写模拟或其他内容?
最佳答案
创建一个单独的单例类,可用于存储全局属性,并让 App Delegate 执行其委托(delegate)角色,仅此而已:
AppProperties.h:
@interface AppProperties : NSObject
@property (strong, nonatomic) NSString *prop1;
@property (strong, nonatomic) NSNumber *prop2;
@property (strong, nonatomic) NSMutableArray *prop3;
+ (AppProperties *)sharedInstance;
@end
AppProperties.m:
@implementation AppProperties
@synthesize prop1, prop2, prop3;
+ (AppProperties *)sharedInstance {
static AppProperties *instance = nil;
static dispatch_once_t onceToken = 0;
dispatch_once(&onceToken, ^{
instance = [[AppProperties alloc] init];
});
return instance;
}
@end
关于objective-c - 如何在测试用例中使用 AppDelegate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19242843/