2016-02-17 20 views
5

Tôi đang viết bài kiểm tra nơi tôi cần đợi một chế độ xem cụ thể hiển thị trong giao diện người dùng của mình bằng cách sử dụng khung kiểm tra UI EarlGrey. Vì vậy, tôi đã xem các tài liệu here và đang cố gắng để đạt được điều này bằng cách sử dụng GREYCondition. Nhưng có vẻ như là GREYCondition yêu cầu kiểm tra tình trạng cụ thể hoặc để sử dụng. Bất cứ ai có thể tư vấn cho tôi như những gì các định dạng của tình trạng này? Có cách nào mà tôi có thể vượt qua trong quan điểm của tôi với điều kiện để làm cho nó chờ đợi cho nó?Tôi làm cách nào để định cấu hình thử nghiệm EarlGrey của mình để chờ xem hoặc sự kiện?

Trả lời

6

Thông thường, bạn không cần phải đợi một chế độ xem cụ thể vì đồng bộ hóa tích hợp của EarlGrey sẽ tự động thực hiện việc đó cho bạn. Có nhiều cài đặt khác nhau trong GREYConfiguration có thể được tinh chỉnh để tăng (hoặc giảm) mức độ EarlGrey đồng bộ hóa. Nếu không có cài đặt nào trong số đó hoạt động, bạn có thể thêm đồng bộ hóa rõ ràng với một cái gì đó như số GREYCondition mà bạn đã tạo và sử dụng API EarlGrey cấp cao nhất để xác định xem có tồn tại chế độ xem hay không.

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

Cảm ơn bạn rất nhiều! –

Các vấn đề liên quan