2012-04-23 5 views
4

テスト目的でシミュレータ内のストーリーボードから特定のシーンを実行する方法はありますか?テストしたい正しいページに移動するために、アプリ内の複数のページをタップする必要があるのは不便です。ストーリーボードによるユニットテスト

+1

xcode/sentestingkitまたはuiオートメーションによるユニットテストについて質問していますか? – shawnwall

答えて

1

ユニットテストは、どのUIにも適していません。モデルとbizz-logicに向けて、単体テストを直接減らそうとするべきです。

統合テストとも呼ばれるUIをテストする場合は、UIAutomationおよび/またはKIFを参照してください。

+1

基本的には、ストーリーボード全体ではなく、1つのシーンをシミュレータにロードする方法を探しています。たぶんそれは悪い考えです。 – zakdances

2

それを行うことが可能であるべきである:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
UITableViewController *tableVC = [storyboard instantiateViewControllerWithIdentifier:@"MyTable"]; 

、あなたが実際に画面上にそれをかけることなく、表示されるビューコントローラをシミュレートしたい場合は:それは実際には良いアイデアだかどうか

[tableVC loadView]; 
[tableVC viewWillAppear:YES]; 
[tableVC viewDidAppear:YES]; 

これを行うには別の問題です。

+0

アップルのドキュメントは、人々がloadViewを直接呼び出すことを妨げています。 – fatuhoku

+0

彼らはそうです。これはテストコードであり、プロダクションコードではありません(KIFはプロダクションコードでは決してしないでください)。代わりにtableVC.viewにアクセスすると(ビューがロードされることになります)、戻り値が使用されないため、コンパイラまたはスタティック・アナライザの警告が発生することがあります。 – JosephH

関連する問題