2016-10-25 14 views
2

3つのタブを持つ簡単なタブバーを作成しました。タブバーコントローラーのUIテスト

enter image description here

私は確信して、ユーザーが正しいビューコントローラショー、タブバーの項目をクリックすることを確認するためにUIテストを実行したいです。それをどうやってやりますか?以下は私が最初に書いたコードですが、私の主張を書く方法は分かりません。

func testTabBarMyProfileButton() { 
    let tabBarsQuery = XCUIApplication().tabBars 
    tabBarsQuery.buttons["My Profile"].tap() 
} 

func testTabBarGraphsButton() { 
    let tabBarsQuery = XCUIApplication().tabBars 
    tabBarsQuery.buttons["Graphs"].tap() 
} 

func testTabBarAboutButton() { 
    let tabBarsQuery = XCUIApplication().tabBars 
    tabBarsQuery.buttons["About"].tap() 
} 

答えて

2

各タブバーに表示される各ビューコントローラーで異なるコントロールを使用している場合は、存在するかどうか(想定されているもの)をアサーションできます。例えば が最初にタブバーがUILabel「ファーストネーム」と命名している場合、それは

Let theLabel = app.staticTexts["myValue"] 
XCTAssert(theLabel.exists).to(beTrue) 

を書き込むことによって、そして他の画面が別のコントロールのために同じことを行うに存在する場合は、あなたが主張することができます。

0

ナビゲーションバーのタイトルをテストできます。

XCTAssert(app.navigationBars["Graphs"].exists) 

my GitHub repo for a more detailed UI Testing exampleを参照してください。

+0

私はナビゲーションバーの使用を計画していませんでした。別の方法がありますか? – Josh

+1

各画面で一意の何かをアサーションする必要があります。これは、ボタン、テキストラベル、またはUIコントロールからのものです。 –

関連する問題