XCTests 中的核心数据
Posted
技术标签:
【中文标题】XCTests 中的核心数据【英文标题】:Core Data in XCTests 【发布时间】:2015-09-01 11:13:23 【问题描述】:我在应用程序中使用 Magical Record。 我初始化
- (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];
但没有运气。有人有什么想法吗?
【问题讨论】:
【参考方案1】:如果您使用 Magic 记录,则需要执行一些额外的步骤。见here。
【讨论】:
我正在使用 cocoapods 并且 Magical Record 包含在 podfile 的测试目标中 谢谢,但我已经看到了这个解决方案。它将用于测试核心数据方法本身,但我想测试与核心数据无关的另一个应用程序功能。当我测试它们时,Magical Record 会松散它堆栈并将默认上下文设置为 nil,然后当应用程序的其他部分尝试调用其方法时 SIGABRT @dimak 你能解决这个问题吗?面临同样的问题。如果你能分享会很有帮助 我已经通过调用 [MagicalRecord setupAutoMigratingCoreDataStack] 解决了这个问题;两次。设置测试构建变量,如果是测试,那么我调用 migrate stack 两次以上是关于XCTests 中的核心数据的主要内容,如果未能解决你的问题,请参考以下文章
在 XCTests 中使用 AFHTTPRequestOperation