【问题标题】:Core Data in XCTestsXCTests 中的核心数据
【发布时间】: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];
   }

但没有运气。有人有什么想法吗?

【问题讨论】:

    标签: ios objective-c magicalrecord xctest


    【解决方案1】:

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

    【讨论】:

    • 我正在使用 cocoapods 并且 Magical Record 包含在 podfile 的测试目标中
    • 谢谢,但我已经看到了这个解决方案。它将用于测试核心数据方法本身,但我想测试与核心数据无关的另一个应用程序功能。当我测试它们时,Magical Record 会松散它堆栈并将默认上下文设置为 nil,然后当应用程序的其他部分尝试调用其方法时 SIGABRT
    • @dimak 你能解决这个问题吗?面临同样的问题。如果你能分享会很有帮助
    • 我已经通过调用 [MagicalRecord setupAutoMigratingCoreDataStack] 解决了这个问题;两次。设置测试构建变量,如果是测试,那么我调用 migrate stack 两次
    猜你喜欢
    • 1970-01-01
    • 2011-01-11
    • 2018-01-08
    • 2011-10-16
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多