2016-08-31 7 views
0

私はXcode UIテスターを使ってアプリケーションをテストしています。アプリの各ページにはタイトルテキストがあります。テストがページを訪問するとき、私はXCTAssertEqualを使用してタイトルテキストをテストしたいと思います。Xcode UIテストでの反応ネイティブのXCTAssertEqualの使用

反応し、ネイティブのページについては、この

<View style={[AppStyles.appContainer, AppStyles.container]}> 
    <NavigationBar 
     title={<NavbarTitle title= {this.state.title} />} 
     statusBar={{style: 'light-content', hidden: false}} 
     style={AppStyles.navbar} 
     tintColor={AppConfig.primaryColor} 
     leftButton={leftButton} /> 
    <route.component navigator={navigator} route={route} {...route.passProps} onNavigationStateChange={this.onNavigationStateChange} /> 
    </View> 

のように見え、NavBarTitleコンポーネントのコードは、私はこの

のようなものとしてアサーションを書きたい

var NavbarTitle = React.createClass({ 
    render: function() { 
    return (
     <Text style={[AppStyles.baseText, AppStyles.strong, AppStyles.navbarTitle]}>{this.props.title}</Text> 
    ); 
    } 
}); 

です

XCTAssertEqual(NavbarTitle.text, 'Sign In') 

XCTAssertEqualでNavbarTitle.textを見つけるにはどうすればよいですか?

答えて

0

これを行う1つの方法は、title要素ではなくタイトルテキストを探すことです。次のコードは、テキストが表示されるのを待ってから、存在すると主張します。

let exists = NSPredicate(format: "exists == true") 
    let signIn = app.staticTexts[" Sign In"] 
    expectationForPredicate(exists, evaluatedWithObject: signIn, handler: nil) 
    waitForExpectationsWithTimeout(15, handler: nil) 
    XCTAssert(signIn.exists) 

これは、ページに表示されるので、正確な要素を識別することが好ましい「サインイン」を持って起こる他のページの偽陽性を持つことができます。

関連する問題