Xcode 3.2.3을 사용하여 iPhone 응용 프로그램에 대한 단위 테스트를 설정하려고합니다. UnitTestBundle 대상에서 AppDelegate를 찾지 못하는 SenTestingKit
나는 같이 밀접하게 내가 할 수있는 등http://developer.apple.com/iphone/library/documentation/xcode/conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html의 단계를 따라,하지만 난 구축을 위해 노력에이 오류 메시지가 점점 오전 : 는 "(! (yourApplicationDelegate는) = 무기 호)"진정한해야합니다. UIApplication이 문서에 기술 된 제품, 그리고이 오류가 될 때 나는 내 응용 프로그램 테스트 대상 건물입니다
AppDelegate에
(이용 신청 단위 테스트에 대해이되는 기본 사소한 테스트를 사실이다) 찾지 못했습니다.내 테스트가 아닌 모든 테스트 소스가 테스트 번들에 있는지 확인해야합니까?
"((yourApplicationDelegate) != nil)" should be true. UIApplication failed to find the AppDelegate
원래 코드 : 내 프로젝트에 소스 파일을 포함
하고 그것을 잘 컴파일,하지만 여전히 같은 단위 테스트 오류를 앓고 -
는
혼란 템플릿 코드와 같습니다.
-(void) testAppDelegate {
id yourApplicationDelegate = [[UIApplication sharedApplication] delegate];
STAssertNotNil(yourApplicationDelegate, @"UIApplication failed to find the AppDelegate");
}
예, 응용 프로그램 원본은 테스트 대상의 컴파일 소스 빌드 단계에 포함되어야합니다. 단위 테스트 코드와 실제 오류를 게시 할 수 있습니까? –
@chrispix - 질문, 새로운 클래스를 만들 때마다 코드를 명시 적으로 추가 할 필요없이 모든 코드를 테스트 대상에 자동으로 스윕 할 수있는 방법이 있습니까? – groundhog
테스트 대상에 "자동으로"스윕하는 방법을 모르겠습니다. 그러나 XCode를 사용하여 새 클래스를 만들면 대화 상자는 어떤 대상에 추가할지 묻고 이전에 선택한 대상을 기본값으로 사용합니다. 내 경험에 따르면, 내가 추가 한 모든 클래스가 테스트 대상에 추가됩니다. 테스트 클래스이거나 앱의 클래스이며 어떤 방식 으로든 테스트됩니다. 따라서 테스트 대상은 항상 해당 대화 상자에서 확인됩니다. 문제는 실제로 반대입니다. 애플리케이션 클래스에 테스트 클래스를 포함하지 않는 것을 기억하십시오. –