isMemberOfClass não retorna quando o ViewController é instanciado pelo UIStoryboard
Eu tenho uma classe de teste OCUnit: PatientTestViewControllerTests. Abaixo está a interface:
@interface PatientTestViewControllerTests : SenTestCase
@property (nonatomic, strong) PatientTestViewController *testController;
@end
e setUp:
- (void) setUp
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Testing" bundle:nil];
self.testController = [storyboard instantiateInitialViewController];
}
O storyboard "Teste" é o único storyboard do meu aplicativo e está definido como o storyboard principal do aplicativo. O PatientTestViewController é definido como o único controlador de visualização do storyboard.
Eu tenho um teste na minha aula de teste:
- (void) testInitialTestingStoryboardViewIsPatientTest
{
STAssertTrue([self.testController isMemberOfClass:[PatientTestViewController class]], @"Instead of the %@, we have %@",[PatientTestViewController class], [self.testController class]);
}
Este teste falha com a seguinte mensagem de log:
erro: - [PatientTestViewControllerTests testInitialTestingStoryboardViewIsPatientTest]: "[self.testController éMemberOfClass: [PatientTestViewController class]]" deve ser verdadeiro. Ao invés dePatientTestViewController, temosPatientTestViewController
Como isso pode ser? Desde a
[self.testController isMemberOfClass:[PatientTestViewController class]]
é aparentemente falso, como pode o log de teste dizer que ambos
[self.testController class]
e[PatientTestViewController class]
Parece o mesmo?
Informação adicional:
usando[self.testController isKindOfClass:[PatientTestViewController class]]
no teste também falhausando[self.testController class] == [PatientTestViewController class]
também falha.
usando[self.testController isKindOfClass:[UIViewController class]]
PASSOS
[self.testController isMemberOfClass:[UIViewController class]]
FALHA.