2016-02-17 10 views
5

EarlGrey UI Testingフレームワークを使用して特定のビューが表示されるのを待つ必要のあるテストを作成しています。だから、hereという文書を見て、GREYConditionを使ってこれを達成しようとしています。しかし、それはGREYConditionが特定の条件チェックなどを必要とするかのように思われます。条件のフォーマットが何であるかについて誰かに助言することはできますか?それを待つための条件に私が見ることができる方法はありますか?EarlGreyテストでは、ビューやイベントを待つように設定できますか?

答えて

6

一般的に、EarlGreyの組み込み同期が自動的に行うため、特定のビューを待つ必要はありません。 GREYConfigurationには、EarlGreyが同期する範囲を増減(または減少)するためのさまざまな設定があります。これらの設定がどれも機能しない場合は、作成したGREYConditionなどの明示的な同期を追加し、最上位のEarlGrey APIを使用してビューが存在するかどうかを判断できます。

GREYCondition *waitForFoo = [[GREYCondition conditionWithName:@"wait for Foo" block:^BOOL{ 
    NSError *error; 
    // Checking if a view with accessibility ID "Foo" exists: 
    [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@”Foo”)] 
     assertWithMatcher:grey_notNil() error:&error]; 
    return error == nil; 
}]; 

// Wait until 5 seconds for the view. 
BOOL fooExists = [waitForFoo waitWithTimeout:5]; 
if (fooExists) { 
    // Interact with Foo. 
} 
+0

ありがとうございました! –

関連する問題