나는 핵심 데이터에 관한 단위 테스트를 받기 위해 this great article을 따랐다. 설치가 간단 해 보이며 코드의 일부 뷰 라인 만 포함됩니다.파일 기반 코어 데이터를 사용하지 않고 메모리를 사용하도록 MagicalRecord에 지시 할 수 있습니까?
- (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
문제마다 I (상기와 같은) [MyEntity MR_numberOfEntities]
호출하여 코어 데이터의 설정 메모리에있는 엔티티의 양 예컨대 검사, I는, 오브젝트의 양을 얻을 수 있다는 인 파일에 저장됩니다. 설정은이며 몇 천 개가 넘습니다. 어떻게 될까요? setUp
에있는 두 번째 줄은 메모리 하나를 나타냅니다. 그렇습니까? 그리고이 경우에는 저장된 객체의 양으로 0이 반환됩니다.
의견을 보내 주셔서 감사합니다.
편집 :
는 바른 길에 나를 넣어 @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
답장을 보내 주셔서 감사합니다. 내가 달리고있는 시험 만이 유일한 시험입니다. 내 테스트의 대상은 내 응용 프로그램의 대상에 따라 다릅니다. 내 AppdDelegate에서 핵심 데이터 스택 파일을 사용하도록 설정합니다. 이 테스트는 테스트 전에로드되고, 따라서 새 메모리 대신 사용됩니다. 그렇다면 어떻게 이것을 피할 수 있습니까? – Aufwind
나를 바른 길로 인도 해 주셔서 감사합니다. 나는'- (void) setUp;'메서드에서'[MagicalRecord setupCoreDataStackWithInMemoryStore];의 직전에'[MagicalRecord cleanUp];을 호출하여이 수수께끼를 풀었습니다. 나는 [MagicalRecord setDefaultModelFromClass : [self class]];를 제거해야만했다. 내 질문 편집을 참조하십시오. – Aufwind
와우, 그럴 필요는 없어야합니다 ... tearDown 메소드에서 cleanUp을 호출하면 충분했습니다. 이것은 아주 이상합니다. – casademora