2015-09-01 2 views
0

Я использую магическую запись в приложении. инициализируюОсновные данные в 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]; 
    } 

но не повезло. У кого-нибудь есть идеи?

ответ

0

Вам понадобится выполнить несколько дополнительных шагов, если вы используете магическую запись. См. here.

+0

Я использую cocoapods, и магическая запись включена в тестовую цель в podfile – dimak

+0

Обновлен ответ –

+0

Спасибо, но я видел это решение. Он будет работать для тестирования основных методов данных, но я хочу проверить другие функции приложения, не связанные с основными данными. И когда я тестирую их, Magical Record освобождает стек и превращает контекст по умолчанию в nil, а затем SIGABRT, когда другая часть приложения пытается вызвать его методы – dimak