2016-02-17 10 views
5

EarlGrey UI Sınama çerçevesi kullanarak UI'de belirli bir görünümün görünmesini beklemek gereken bir sınama yazıyorum. Yani, here belgelerine baktım ve GREYCondition kullanarak bunu başarmaya çalışıyorum. Ancak, GREYCondition'un kullanılması gereken belirli bir koşul kontrolü gerektirdiği görülüyor. Durumun formatının ne olduğu konusunda bana tavsiyede bulunabilir mi? Benim görüşüme göre bunu beklemek için koşullara geçebileceğim bir yol var mı?EarlGrey testimi bir görüntüyü veya olayı beklemek üzere nasıl yapılandırabilirim?

cevap

6

Tipik olarak, EarlGrey’in yerleşik senkronizasyonu sizin için otomatik olarak yapması gerektiğinden belirli bir görünümü beklemeniz gerekmemelidir. GREYConfiguration'da, EarlGrey'in ne kadar senkronize edeceği ölçüsünü arttırmak (veya azaltmak) için ayarlanabilen çeşitli ayarlar vardır. Bu ayarlardan hiçbiri işe yaramıyorsa, oluşturduğunuz GREYCondition gibi bir şeyle açık senkronizasyon ekleyebilir ve bir görünümün olup olmadığını belirlemek için en üst düzeydeki EarlGrey API'sini kullanabilirsiniz.

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

Bunun için çok teşekkürler! –

İlgili konular