isMemberOfClass zwraca nie, gdy wystąpi instancja ViewController z UIStoryboard
Mam klasę testową OCUnit: PatientTestViewControllerTests. Poniżej znajduje się interfejs:
@interface PatientTestViewControllerTests : SenTestCase
@property (nonatomic, strong) PatientTestViewController *testController;
@end
i ustaw:
- (void) setUp
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Testing" bundle:nil];
self.testController = [storyboard instantiateInitialViewController];
}
Seria scenariuszy „Testowanie” jest jedyną scenorią w mojej aplikacji i jest ustawiona jako główna storyboard aplikacji. Sterownik PatientTestViewController jest ustawiony jako jedyny kontroler widoku serii ujęć.
Mam jeden test w mojej klasie testowej:
- (void) testInitialTestingStoryboardViewIsPatientTest
{
STAssertTrue([self.testController isMemberOfClass:[PatientTestViewController class]], @"Instead of the %@, we have %@",[PatientTestViewController class], [self.testController class]);
}
Ten test kończy się niepowodzeniem z następującym komunikatem dziennika:
error: - [PatientTestViewControllerTests testInitialTestingStoryboardViewIsPatientTest]: "[self.testController isMemberOfClass: [PatientTestViewController class]]" powinno być prawdziwe. Zamiast tegoPatientTestViewController, mamyPatientTestViewController
Jak to może być? Od
[self.testController isMemberOfClass:[PatientTestViewController class]]
jest pozornie fałszywa, w jaki sposób dziennik testu może powiedzieć, że oba
[self.testController class]
i[PatientTestViewController class]
wygląda tak samo?
Dodatkowe informacje:
za pomocą[self.testController isKindOfClass:[PatientTestViewController class]]
w teście również zawodziza pomocą[self.testController class] == [PatientTestViewController class]
zawodzi również.
za pomocą[self.testController isKindOfClass:[UIViewController class]]
KARNETY.
[self.testController isMemberOfClass:[UIViewController class]]
FAILS.