2017-04-18 12 views
0

は誰もが知っていると、ユニットテストでは、どのように我々は、ボタンをテストすることができ、機能とのtableViewトラブルユニットテストを使用しているとき

例Iは、ボタンアクションがあります。これをテストするために

@IBAction func BellAction(_ sender: Any) { 
    let searchVC = self.storyboard?.instantiateViewController(withIdentifier:StoryBoardIDs.Notification.rawValue) 
    self.navigationController?.pushViewController(searchVC!, animated: true) 
} 

を:

let home = HomeDashnboard() // This is my class 
home.viewDidLoad() // test viewDidLoad() 
home.BellAction() // shows an error 

答えて

2

残念ながら、あなたが直接あなたのビューコントローラビューを操作する/呼び出すことはできません、そのようなものなど。これらのクラスのライフサイクル/フローは、UIKitによって制御され、iOSアプリの定期的な実行中に非常に特殊な瞬間に呼び出されます。それは

:-(そのような行動を自分でエミュレートしようとしている非常にエラーが発生しやすくなります。しかし、あなたはアプリのUIをテストしたい場合は、私は非常にもXcodeので提供UI Testing frameworkに詳しく見てとることをお勧めします:

UIテストは、あなたに見つけて、UI要素のプロパティと状態を検証するために、あなたのアプリのUIと相互作用する能力を提供します。

UIテストは、あなたのコードを生成することができますUIの記録を含み、あなたのアプリのUIを同じように演習しますUIテストを実装します。これはすぐにUIテストを作成するのに適しています。

+0

パウロは、私は、UIのテストでそれをやった、しかし、あなたが本当にユニットテストが必要な場合は、ユニットテスト –

+0

@GurwinderSinghにテストコードに問題に直面することは、それはあなたのUI層からのこのようなテストを分割検討する価値があるかもしれません。たとえば、ユニットレベルのコードのみをテストします。 –

関連する問題