Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Не можу в тестах відкрити URL через фреймворк XCTests

xctest
ios
Теги: #<Tag:0x00007fedc074c3d0> #<Tag:0x00007fedc074c1c8>

(Grosha) #1

Пишу тести для iOs апи на swift, автоматизовую за допомогою фреймоврку XCTest. Виникла проблема з відкриттям URL. В документаціє вказано, що з 10 iOs використрвується такий метод :slight_smile:

UIApplication.shared().open(url: URL, options: [String: AnyObject], completionHandler: ((Bool) -> Void)?)

Приклад:

func testOpenUrl()  {
    
    let webSite = "https://google.com"
    
    if let url = URL(string: webSite) {
        if #available(iOS 10, *) {
            UIApplication.shared.open(url, options: [:],
                                      completionHandler: {
                                        (success) in
                                        print("Open \(webSite): \(success)")
            })
        } else {
            let success = UIApplication.shared.openURL(url)
            print("Open \(webSite): \(success)")
        }
    }
    
}

Але результат завжди вертається

Open https://google.com: false

Якщо таким же ж чином відкрити URL в основному коді (не в тестах) - то результат буде позитивни (URL відкриється)

Хто зтикався з такою проблемою? Підскажіть - як вирішили її!


(Aleksey Ilyenko) #2

Я подозреваю, что этот метод асинхронный, поэтому Вам нужно ждать открытия самостоятельно. Тест же синхронный и оканчивается до открытия URL.