2012-10-18 5 views
0

ers,iOS GHUnit 및 코어 데이터

최근에 기존 Core iData 응용 프로그램에 CoreData를 통합했습니다. 기존에 도메인 및 네트워크 기능에 대한 테스트가있었습니다. 이제는 userDefaults에 저장하는 대신 CoreData를 사용하도록 개조해야합니다.

내 프로젝트에 GHUnitIOS.framework이 포함되어 있습니다. 그러나 TestAppDelegate는 CoreData의 managedObjectContext에 대해 아무 것도 모르기 때문에 모든 테스트가 실패합니다. 제가 보는 것과 같은 참고 :

[GHUnitIOSAppDelegate managedObjectContext]: unrecognized selector sent to instance

이 의미가 있습니다 - 테스트 응용 프로그램 대리인이 속성으로 managedObjectContext이 없습니다. 나는 그것을 추가하고 싶지만 프레임 워크를 사용할 때 헤더 파일에만 접근 할 수 있기 때문에 필자의 필요에 맞게 수정할 수는 없다. GHUnit 소스를 다운로드하고 구현 파일을 수정할 수는 있지만 다른 옵션이있는 경우이를 수행하지 않을 것입니다.

다른 사람들이이 문제를 어떻게 해결 했습니까? IE, GHUnit을 사용하여 CoreData를 지원하도록 테스트를 수정하려면 어떻게해야합니까?

감사합니다.

+0

CoreData 속성/메소드를 캡슐화 한 주 AppDelegate에 객체를 만든 경우 필요한 CoreData 설정을 테스트/모의 할 수 있습니까? – kyleturner

답변

2

이전에이 문제가있었습니다. GHUnit 테스트 프레임 워크는 자체 응용 프로그램 대리인을 사용합니다. 따라서 델리게이트를 호출하는 것은 앱 위임 내에서 작성한 코드를 호출하지 않으며 그 동작이 엉뚱한 것일 수 있습니다.

일반적으로 항상 managedObjectContext()를 응용 프로그램 대리인이 아닌 싱글 톤으로 처리해야합니다. 최근 나는 OCunit에서 GHUnit으로 전환했고 그 기능을 모두 다른 클래스로 추상화해야했습니다. 그것은 고통 이었지만 가치가있었습니다.