私は OCUnit Test クラスを持っています: PatientTestViewControllerTests。以下はインターフェースです:
@interface PatientTestViewControllerTests : SenTestCase
@property (nonatomic, strong) PatientTestViewController *testController;
@end
とセットアップ:
- (void) setUp
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Testing" bundle:nil];
self.testController = [storyboard instantiateInitialViewController];
}
'Testing' ストーリーボードは、アプリ内の唯一のストーリーボードであり、アプリのメイン ストーリーボードとして設定されています。PatientTestViewController は、ストーリーボードの唯一のビュー コントローラーとして設定されます。
テストクラスに 1 つのテストがあります。
- (void) testInitialTestingStoryboardViewIsPatientTest
{
STAssertTrue([self.testController isMemberOfClass:[PatientTestViewController class]], @"Instead of the %@, we have %@",[PatientTestViewController class], [self.testController class]);
}
このテストは失敗し、次のログ メッセージが表示されます。
エラー: -[PatientTestViewControllerTests testInitialTestingStoryboardViewIsPatientTest]: "[self.testController isMemberOfClass:[PatientTestViewController クラス]]" は true である必要があります。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]]
FAILSを使用します。