具有核心数据/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]就可以了 你能把一个项目放在某个地方重现这个问题吗?我刚刚用这个设置创建了一个最小的项目,效果很好