3

在多个类中,我[NSApp delegate]用来从我访问某些属性的地方获取我的主 AppDelegate。这按预期工作,但是当我对使用它的代码进行单元测试时,这个委托是nil

我如何在测试中处理这个问题?是否可以写一个模拟或其他东西?

4

1 回答 1

3

创建一个单独的单例类,它可以用来存储全局属性,让 App Delegate 来做它的委托角色,仅此而已:

应用程序属性.h:

@interface AppProperties : NSObject

@property (strong, nonatomic) NSString *prop1;
@property (strong, nonatomic) NSNumber *prop2;
@property (strong, nonatomic) NSMutableArray *prop3;

+ (AppProperties *)sharedInstance;

@end

应用属性.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
于 2013-10-08T08:55:39.280 回答