我有一个 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]:“[self.testController isMemberOfClass:[PatientTestViewController class]]”应该为真。我们有PatientTestViewController而不是PatientTestViewController
怎么会这样?自从
[self.testController isMemberOfClass:[PatientTestViewController class]]
显然是假的,测试日志怎么能说两者都
[self.testController class]
和[PatientTestViewController class]
看起来一样?
附加信息:
[self.testController isKindOfClass:[PatientTestViewController class]]
在测试中使用也失败了使用
[self.testController class] == [PatientTestViewController class]
也失败了。使用
[self.testController isKindOfClass:[UIViewController class]]
通行证。- 使用
[self.testController isMemberOfClass:[UIViewController class]]
失败。