このすばらしい記事に従って、コアデータに関する単体テストを開始しました。セットアップは単純に見え、コードのいくつかのビュー行が含まれます。
- (void)setUp;
{
[MagicalRecord setDefaultModelWithClass:[self class]];
[MagicalRecord setupCoreDataStackWithInMemoryStore];
}
- (void)tearDown;
{
[MagicalRecord cleanUp];
}
- (void)testSomeCalculationOnMyEntity;
{
NSNumber *count = [MyEntity MR_numberOfEntities];
// STAssert([testEntity customCalculation] == expectedValue, @"expected a good calculation");
}
@end
問題は、たとえば、コアデータのメモリ設定内のエンティティの量を(上記のように)呼び出すことで確認するたびに、ファイルベースの設定に[MyEntity MR_numberOfEntities]
保存されているオブジェクトの量を取得することです。数千のオブジェクト。これはどのように起こりますか?の2行目は、メモリ内の行を示していますね。そして、この場合は、格納されているオブジェクトの量として0を返す必要があります。setUp
提案をありがとう!
編集:
@casademoraは私を正しい軌道に乗せました。次の作品のセットアップは今私にとってはうまくいきます。
- (void)setUp;
{
[MagicalRecord cleanUp]; // This solved the mystery.
// I don't now why I had to remove this line, though.
// [MagicalRecord setDefaultModelWithClass:[self class]];
[MagicalRecord setupCoreDataStackWithInMemoryStore];
}
- (void)tearDown;
{
[MagicalRecord cleanUp];
}
- (void)testSomeCalculationOnMyEntity;
{
NSNumber *count = [MyEntity MR_numberOfEntities];
// STAssert([testEntity customCalculation] == expectedValue, @"expected a good calculation");
}
@end