isMemberOfClass возвращает no, когда экземпляр ViewController создается из UIStoryboard
У меня есть класс теста OCUnit: PatientTestViewControllerTests. Ниже приведен интерфейс:
@interface PatientTestViewControllerTests : SenTestCase
@property (nonatomic, strong) PatientTestViewController *testController;
@end
и настройка:
- (void) setUp
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Testing" bundle:nil];
self.testController = [storyboard instantiateInitialViewController];
}
«Тестирование» Раскадровка - единственная раскадровка в моем приложении, и она установлена как основная раскадровка приложения. PatientTestViewController установлен в качестве единственного контроллера представления раскадровки.
У меня есть один тест в моем тестовом классе:
- (void) testInitialTestingStoryboardViewIsPatientTest
{
STAssertTrue([self.testController isMemberOfClass:[PatientTestViewController class]], @"Instead of the %@, we have %@",[PatientTestViewController class], [self.testController class]);
}
Этот тест не проходит со следующим сообщением журнала:
ошибка: - [PatientTestViewControllerTests testInitialTestingStoryboardViewIsPatientTest]: & quot; [self.testController isMemberOfClass: [PatientTestViewController class]] & quot; должно быть правдой. ВместоPatientTestViewController, у нас естьPatientTestViewController
Как это может быть? поскольку
[self.testController isMemberOfClass:[PatientTestViewController class]]
очевидно ложно, как журнал испытаний может сказать, что оба
[self.testController class]
а также[PatientTestViewController class]
выглядит также?
Дополнительная информация:
using[self.testController isKindOfClass:[PatientTestViewController class]]
in the test also fails
using [self.testController class] == [PatientTestViewController class]
fails also.
using [self.testController isKindOfClass:[UIViewController class]]
PASSES.
[self.testController isMemberOfClass:[UIViewController
class]]
FAILS.