isMemberOfClass gibt no zurück, wenn ViewController aus UIStoryboard instanziiert wird
Ich habe eine OCUnit-Testklasse: PatientTestViewControllerTests. Unten ist die Schnittstelle:
@interface PatientTestViewControllerTests : SenTestCase
@property (nonatomic, strong) PatientTestViewController *testController;
@end
und setUp:
- (void) setUp
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Testing" bundle:nil];
self.testController = [storyboard instantiateInitialViewController];
}
Das Storyboard "Testen" ist das einzige Storyboard in meiner App und wird als Haupt-Storyboard der App festgelegt. Der PatientTestViewController ist der einzige Ansichtscontroller des Storyboards.
Ich habe einen Test in meiner Testklasse:
- (void) testInitialTestingStoryboardViewIsPatientTest
{
STAssertTrue([self.testController isMemberOfClass:[PatientTestViewController class]], @"Instead of the %@, we have %@",[PatientTestViewController class], [self.testController class]);
}
Dieser Test schlägt mit der folgenden Protokollmeldung fehl:
Fehler: - [PatientTestViewControllerTests testInitialTestingStoryboardViewIsPatientTest]: "[self.testController isMemberOfClass: [PatientTestViewController class]]" sollte wahr sein. Anstatt derPatientTestViewController, wir habenPatientTestViewController
Wie kann das sein? Schon seit
[self.testController isMemberOfClass:[PatientTestViewController class]]
ist anscheinend falsch, wie kann das testprotokoll beides aussagen
[self.testController class]
und[PatientTestViewController class]
gleich aussehen?
Zusätzliche Information:
mit[self.testController isKindOfClass:[PatientTestViewController class]]
im test scheitert auchmit[self.testController class] == [PatientTestViewController class]
scheitert auch.
mit[self.testController isKindOfClass:[UIViewController class]]
GEHT VORBEI.
[self.testController isMemberOfClass:[UIViewController class]]
AUSFÄLLE.