1

UIViewController の 1 つで viewDidLoad イベントをテストしています。

- (void)testMyView
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    MyViewController *vc = [storyboard instantiateViewControllerWithIdentifier:MYID];
    [vc viewDidLoad];

    STAssertNotNil(vc, @"MyViewController should not be nil");
}

行を削除すると、[vc viewDidLoad];トリガーviewDidLoadされません。

その[vc viewDidLoad];場に置いておくと、viewDidLoadが 2 回トリガーされます。

ビューが遅延ロードされることは理解していますが、どうすればその動作を回避できますか?

ビューのテストに関するベスト プラクティスはありますか?

4

5 に答える 5

11

ビューを自動的にロードするには、ビューにアクセスする必要があります。

次のようなものを使用して、副作用なしで実行できます。

vc.view.hidden = NO; // Or YES if it is supposed to be hidden.

ああ、それから手動呼び出しはviewDidLoad必要ないので削除してください。

于 2013-06-12T17:12:40.930 に答える