vrw*_*wim 5 stub swift xcode-ui-testing
我试图了解如何编写UI测试,但似乎无法使HTTP存根正常工作。运行测试时,看不到存根中的数据,而是API的数据。
我已经在Xcode 10.2和9.4.1中进行了尝试,所以不是因为它不再在Xcode 10中起作用。
我一定在某处做错了,但我不知道该怎么办。
我创建了一个最小的示例来检查是否是因为我在一个大项目中工作并且有什么干扰,但是那没有用。
您可以在这里找到整个最小项目:https : //github.com/vrwim/TestingTest
在我的viewcontroller中,我有一个简单的tableview设置,它执行API调用,并将结果加载到行中。我有一个UI测试目标,该目标具有一个简单的测试设置,该测试使用Mockingjay存根HTTP请求。
我的API调用代码:
func callSimpleAPI(completionHandler: @escaping ([Patient]?, Error?) -> ()) {
let url = URL(string: "https://pastebin.com/raw/3PusWbw6")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
DispatchQueue.main.async {
guard let data = data else {
completionHandler(nil, error!)
return
}
do {
let patientResponse = try JSONDecoder().decode(TherapistPatientResponse.self, from: data)
completionHandler(patientResponse.patients, nil)
} catch {
completionHandler(nil, error)
}
}
}
task.resume()
}
Run Code Online (Sandbox Code Playgroud)
和我的测试代码:
override func setUp() {
let app = XCUIApplication()
app.launch()
stub(everything, json(/*A json representation of the API response that I want to see*/))
}
Run Code Online (Sandbox Code Playgroud)
编辑:我在运行iOS 12.3 beta和模拟器(非beta)的iPhone上尝试了此操作。
编辑:也不与OHHTTPStubs一起使用。OHHTTPStubs在示例项目中添加了一个分支。
编辑:我在macOS Mojave 10.14.3上,并且我使用Xcode 10.2和9.4.1进行测试。我尝试了运行iOS 12.3的iPhone和运行iOS 12.2的模拟器
编辑:我在我的最小示例中添加了一个失败的测试,如果网络存根正常,该测试应该通过。
您无法使用 Mockingjay 进行 UI 测试存根,因为 XCUITests 在不同的进程中运行。您需要一个库来启动一个小型 http 服务器并用您的模拟进行响应。例如https://github.com/httpswift/swifter或https://github.com/envoy/Embassy
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |