Swift 从XCUITest中的URLSession获取输出
我试图从XCUI测试中的URL中获取一个值。但是,它没有输出,所以我不确定除了我已经在下面的代码中尝试之外,我是否还有什么应该做的事情:Swift 从XCUITest中的URLSession获取输出,swift,xcode,urlsession,xcuitest,Swift,Xcode,Urlsession,Xcuitest,我试图从XCUI测试中的URL中获取一个值。但是,它没有输出,所以我不确定除了我已经在下面的代码中尝试之外,我是否还有什么应该做的事情: import XCTest class ExampleUITests: XCTestCase { func testExample() { print("We are in XCUITest textExample right now") let urlString = "https://api.ipify.org/" guar
import XCTest
class ExampleUITests: XCTestCase {
func testExample() {
print("We are in XCUITest textExample right now")
let urlString = "https://api.ipify.org/"
guard let url = URL(string: urlString) else { return }
URLSession.shared.dataTask(with: url) { (data, response, error) in
if error != nil {
print(error!.localizedDescription)
}
guard let data = data
else {
print("error found in data")
return
}
print("*******")
let outputStr = String(data: data, encoding: String.Encoding.utf8) as String!
print (outputStr)
}.resume()
}
}
问题是,测试完成后会返回来自服务器的响应。您应该在测试中添加等待网络响应 在测试开始时,添加:
waitForExpectationsWithTimeout(5.0) { (error) in
if error != nil {
XCTFail(error.localizedDescription)
}
}
let expectation=expectationWithDescription(“”)
在测试结束时,添加:
waitForExpectationsWithTimeout(5.0) { (error) in
if error != nil {
XCTFail(error.localizedDescription)
}
}
并在网络完成块中添加:
expection.fulfill()
例如,在这里的测试中,您可以获得有关异步任务waining的更多信息。我尝试添加一个完成块,如本问题所述,但它仍然没有给我任何输出