ios - Xcode 7 Magical Record 单元测试失败

标签 ios objective-c core-data magicalrecord

从 Xcode 6.4 升级到 Xcode 7(现在是 7.0.1)后,我的项目在开始单元测试时崩溃了。我的 iOS 项目正在使用 Magical Record 并且应用程序在此断言时崩溃:

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

我已经注释掉了我以前的所有测试,并且这两个测试都显示了相同的行为:

#import <XCTest/XCTest.h>

@interface BadTests : XCTestCase

@end

@implementation BadTests

- (void)setUp {
    [super setUp];
}

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

- (void)testSanity {
    XCTAssert(1 == 1);
}

@end

#import <XCTest/XCTest.h>
#import <MagicalRecord/MagicalRecord.h>

@interface BadTests : XCTestCase

@end

@implementation BadTests

- (void)setUp {
    [super setUp];
    NSLog(@"*** USING IN MEMORY STORE ***");
    [MagicalRecord setLoggingLevel:MagicalRecordLoggingLevelDebug];
    [MagicalRecord setupCoreDataStackWithInMemoryStore];
}

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

- (void)testSanity {
    XCTAssert(1 == 1);
}

@end

使用相同的测试恢复到 Xcode 6 可以解决问题。

最佳答案

最终通过调整我的 Podfile 解决了问题:

link_with 'TestApp', 'TestAppTests', 'TestAppUITests'

platform :iOS, '8.1'

target 'TestApp' do
     pod 'MagicalRecord'
end

target 'TestApp' do
     pod 'OHHTTPStubs'
end

以前我的 pod 文件看起来像这样:

platform :iOS, '8.1'
pod 'MagicalRecord'
pod 'OHHTTPStubs'

关于ios - Xcode 7 Magical Record 单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32952060/

相关文章:

objective-c - 将 nil 对象插入 NSDictionary

ios - 采用核心数据,按几个标准过滤。我想要 NSPredicate 吗?

ios - 在 iOS 中存储自定义对象(未实现 NSCoding)的方法

ios - 使用一个目标中的框架作为本地另一目标中的 Pod

java - SHA256 : different output in Swift and Java?

ios - 保存和加载图片的正确方法

iphone - 如果 iPhone 连接到 wifi 网络,如何使用 Objective-C 判断?

ios - 如何创建混合开发 Pod

core-data - 搜索栏返回按钮

core-data - 是否可以在 iOS 9 和 10 中使用核心数据(Xcode 8 和 Swift 3.0)?