Śledziłem dokumentację Apple dotyczącą pisania testów jednostkowych dla iPhone'a, a po wyjęciu z pudełka, procedura wydaje się nie działać. Nie jestem pewien, czy rozumiem, gdzie test jednostkowy ma uzyskać odwołanie do delegata aplikacji.iPhone - Pobieranie zasobów dla testów jednostek logicznych
Moi Zależności są jak następuje: My_Program_target -> UnitTesting_target -> UnitTests_bundle
Poniższy fragment kodu, gdzie jest assert kończy się niepowodzeniem. Jestem bardzo zaznajomiony z CPPUNIT, ale mam problem ze zrozumieniem, jak to się krzyżuje.
- (void) testAppDelegate {
id yourApplicationDelegate = [[UIApplication sharedApplication] delegate];
STAssertNotNil(yourApplicationDelegate, @"UIAppliation failed to find the AppDelegate");
}
Dodatkowo:
Zdecydowałem w moim podejściu do zrobienia test logiczny. Próbuję odczytać w pliku XML, ale nie mam szczęścia, rozwiązując pakiet, który zapewni mi ścieżkę dostępu do mojego pliku. Próbowałem wkleić wyjściową ścieżkę przez allBundles, ale ta ścieżka też nie działa. Poniżej jest to, co mam w moim wykonaniu testu (widać oświadczenie debugowania używam do wyjścia ścieżki wiązek):
NSLog(@"BundlePaths: %@", [NSBundle allBundles]);
NSString * path = [[NSBundle bundleWithPath:@"$(TARGET_BUILD_DIR)"] pathForResource:@"SimpleTestList" ofType:@"plist"];
STAssertNotNil(path, @"Bundle Location couldn't find the file specified");
Zasadniczo assert na ścieżce nie powiedzie się, ale jestem nie jestem pewien, co umieścić w ścieżce lub katalogu, aby odnieść się do mojego pakietu unitTest, który powiedziałem, aby skopiować zasoby pakietu. Wywołanie [NSBundle mainBundle] również nie działa.
Zbudowanie rozwiązania Gary'ego, wymyśliłem następujące makra preprocesorów: Xcode: TEST i DEBUG (http://stackoverflow.com/questions/6748087/xcode-test-vs-debug-preprocessor-macros/6763597 # 6763597). – ma11hew28