Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有核心数据/MagicalRecord意外行为的iOS单元测试_Ios_Core Data_Magicalrecord - Fatal编程技术网

具有核心数据/MagicalRecord意外行为的iOS单元测试

具有核心数据/MagicalRecord意外行为的iOS单元测试,ios,core-data,magicalrecord,Ios,Core Data,Magicalrecord,我得到了以下测试代码 @interface SubscriberTest : XCTestCase @end @implementation SubscriberTest - (void)setUp { [super setUp]; [MagicalRecord setDefaultModelFromClass:[self class]]; [MagicalRecord setupCoreDataStackWithInMemoryStore]; } - (vo

我得到了以下测试代码

@interface SubscriberTest : XCTestCase

@end

@implementation SubscriberTest

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

}


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

- (void)testParseSubscriberWithEvents
{
   NSEntityDescription *pDesc = [NSEntityDescription entityForName:@"Subscriber"
                                         inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
   XCTAssertNotNil(pDesc);


- (void)testParseSubscriberWithReviews
{
   NSEntityDescription *pDesc = [NSEntityDescription entityForName:@"Subscriber"
                                         inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
    XCTAssertNotNil(pDesc);

}
@结束

我不明白为什么第一次总是成功,第二次总是失败。。 就像每个测试都是自己创建的
ManagedObjectContext
,但第二个测试不知道我的实体。。。 事实上,这段代码用于测试json数据的导入。我调试了MagicalRecord的代码,以确定问题来自该方法

[NSEntityDescription entityForName: inManagedObjectContext:]
在第二次测试中返回零

我试着评论第一次测试,第二次测试成功了!但是如果是两个测试,第二个每次都失败

有关信息,我正在使用
MagicalRecord
2.3.0.beta(因为2.2 importFromObject方法中存在一些bug…)
任何帮助和解释都将不胜感激

看起来像是在第一次测试后-拆卸破坏了CoreData堆栈,出于某种原因,下一次-调用MagicalRecord时,安装程序没有正确初始化Core Data堆栈(第二次测试的上下文为零),这导致第二次测试失败。我发现,如果您只需设置一次核心数据堆栈(您可以通过在-setup中调用dispatch_once来实现),然后在-tearDown中调用[Subscriber MR_truncateAll]就可以了

你能把一个项目放在某个地方重现这个问题吗?我刚刚用这个设置创建了一个最小的项目,效果很好