XCTests中的核心数据

问题描述:

我在应用程序中使用Magical Record。 我初始化XCTests中的核心数据

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    [MagicalRecord setupAutoMigratingCoreDataStack]; 
} 

和应用程序通常会做一些东西,而互联网连接存在。 我试图写一个XCTest但我总是收到SIGABRT:

+ (NSManagedObjectContext *) MR_defaultContext 
    { 
     @synchronized(self) { 
     NSAssert(MagicalRecordDefaultContext != nil, @"Default context is nil! Did you forget to initialize the Core Data Stack?"); 
     return MagicalRecordDefaultContext; 
     } 
    } 

我进行调查,可以看到在AppDelegate中成功初始化那个神奇纪录。

我甚至尝试

- (void)setUp { 
     [super setUp]; 
     [MagicalRecord setDefaultModelFromClass:[self class]]; 
     [MagicalRecord setupCoreDataStackWithInMemoryStore]; 
    } 

    - (void)tearDown { 
     [MagicalRecord cleanUp]; 
     [super tearDown]; 
    } 

,但没有运气。有没有人有任何想法?

如果您使用Magic记录,则需要执行一些额外的步骤。请参阅here

+0

我正在使用cocoapods和魔法记录包含在podfile中的测试目标中 – dimak

+0

已更新我的回答 –

+0

谢谢,但我见过这个解决方案。它将用于测试核心数据方法本身,但我想测试另一个与核心数据无关的应用程序函数。当我测试它们时,魔法记录会将它堆叠起来,并将默认上下文转换为零,然后在应用程序的其他部分尝试调用其方法时,SIGABRT – dimak