我有以下方法:MagicalRecord MR_createInContext:返回nil
it(@"should create new object with new id", ^{
[[[Group class] should] receive:@selector(MR_createInContext:)];
Group *group = [Group groupWithID:@"12345"
inContext:[NSManagedObjectContext MR_contextForCurrentThread]];
[[group should] beNonNil];
[[[group idNumber] should] equal:@"12345"];
});
有了以下設置:
beforeEach(^{
[MagicalRecord setupCoreDataStackWithInMemoryStore];
[MagicalRecord setDefaultModelNamed:@"Model.mom"];
});
afterEach(^{
[MagicalRecord cleanUp];
});
+(Group*)groupWithID:(NSString *)idNumber
inContext:(NSManagedObjectContext *)context
{
Group *group = nil;
if(idNumber && context)
{
NSArray *result = [Group MR_findByAttribute:@"idNumber" withValue:idNumber inContext:context];
if(!result || result.count > 1)
{
// TODO (Robert): Handle error for more than one group objects or error nil results
}
else if(result.count == 0)
{
group = [Group MR_createInContext:context];
group.idNumber = idNumber;
NSAssert(group != nil, @"Group should not be nil!");
}
else
{
group = [result lastObject];
}
}
return group;
}
我有以下獼猴桃規範測試它問題是MR_createInContext方法返回一個零,我不知道可能是什麼原因,因爲在某些情況下她測試相同的代碼會生成一個有效的非零對象。
你能重現這一結果與其他類(除MagicalRecord類別除外)?雖然我沒有試過用MagicalRecord專門重現這一點,但我[嘗試了一些人爲的代碼](https://gist.github.com/mmertsock/5519408)並且無法重現結果。 – 2013-05-05 02:12:15
我會稍後檢查(這裏是凌晨3點),即使是調試器,也不會在我的測試用例中進入MR_createInContext的代碼。 – foFox 2013-05-05 02:43:31