Objective c 如何对NSArrayController(子类)进行单元测试?
我想为我的NSArrayController子类编写一些单元测试。Objective c 如何对NSArrayController(子类)进行单元测试?,objective-c,cocoa,core-data,nsarraycontroller,xctest,Objective C,Cocoa,Core Data,Nsarraycontroller,Xctest,我想为我的NSArrayController子类编写一些单元测试。 我首先设置核心数据管理对象上下文,然后将实体“资产”的一些对象添加到核心数据,然后设置我的阵列控制器: @interface MYAssetArrayControllerTest : XCTestCase ... - (void)setUp { [super setUp]; [self setUpManagedObjectContext]; [self setUpAssets]; [self s
我首先设置核心数据管理对象上下文,然后将实体“资产”的一些对象添加到核心数据,然后设置我的阵列控制器:
@interface MYAssetArrayControllerTest : XCTestCase
...
- (void)setUp
{
[super setUp];
[self setUpManagedObjectContext];
[self setUpAssets];
[self setUpMYAssetArrayController];
}
- (void)setUpMYAssetArrayController
{
_arrayController = [[MYAssetArrayController alloc] init];
[_arrayController setManagedObjectContext:_moc];
[_arrayController setEntityName:@"Asset"];
[_arrayController setSelectsInsertedObjects:YES];
[_arrayController setAutomaticallyPreparesContent:YES];
[_arrayController fetch: self];
}
当我尝试查看排列的对象时,没有:
- (void)testGetArrangedObjects
{
id myArrangedObjects;
myArrangedObjects = [_arrayController arrangedObjects];
...
}
myArrangedObjects始终为空…我必须如何设置我的NSArrayController才能从中检索对象?当我不将
fetch:
但fetchWithRequest:merge:error:
发送到我的阵列控制器时,我发现它可以工作。我的原始代码:
- (void)setUpMYAssetArrayController
{
_arrayController = [[MYAssetArrayController alloc] init];
[_arrayController setManagedObjectContext:_moc];
[_arrayController setEntityName:@"Asset"];
[_arrayController setSelectsInsertedObjects:YES];
[_arrayController setAutomaticallyPreparesContent:YES];
[_arrayController fetch: self];
}
变成:
- (void)setUpMYAssetArrayController
{
_arrayController = [[MYAssetArrayController alloc] init];
[_arrayController setManagedObjectContext:_moc];
[_arrayController setEntityName:@"Asset"];
[_arrayController setSelectsInsertedObjects:YES];
[_arrayController setAutomaticallyPreparesContent:YES];
NSError *error = nil;
BOOL ok = [_arrayController fetchWithRequest:nil merge:NO error:&error];
}
下面对-fetch
的注释可能是一种解释
从OSXV10.4开始,此方法的结果将推迟到
运行循环的下一次迭代,以便错误显示
该机制可以作为表单提供反馈