0
私のcoredataメソッドはこちらです。これをチェックするユニットテストケースを書く方法。目的のcでコアデータを使用したユニットテスト
方法は
- (NSArray *)fetchUserWithUsername:(NSString *)username {
if (username != nil) {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *userEntity = [NSEntityDescription entityForName:@“EntityName” inManagedObjectContext:[self sharedContext]];
[fetchRequest setEntity:userEntity];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"username = %@", username];
NSError *error;
NSArray *fetchedObjects = [[self sharedContext] executeFetchRequest:fetchRequest error:&error];
return fetchedObjects;
}
return nil;
}
Iは、上記のコードの端 UserDetails *ユーザー= [NSEntityDescription insertNewObjectForEntityForName: "UserDetails" inManagedObjectContext @:コンテキスト]でこのコードを追加しました。 user.username = @ "XXX"; テストケースが成功しましたが、saveメソッドがわかる方法は –
となりますが、これは実際のデータベースでは変更されません。私は正しい? –
*変更*します。述語のセットが異なるため、特にフェッチは異なります。https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/PersistentStoreFeatures.htmlと、*述語のフェッチと記述子の並べ替え*。ただし、コードに制限が適用されない場合は、インメモリストアを使用できます。テストの開始時にSQLストアを構築することは現実に近いものです。多くの場合、テストのためにストア内にいくつかのインスタンスを置く必要があります。 –