Mic*_*ovo 7 ios xctest swiftui
有谁知道如何正确编写 Toggle 的 UI 测试?即使在一个全新的项目中,整个 UI 中只有一个切换而没有其他内容,我仍然会收到此类错误:
\nFailed to get matching snapshot: Multiple matching elements found for <XCUIElementQuery: 0x60000108c410>.\nSparse tree of matches:\n\xe2\x86\x92Application, pid: 26580, label: 'TestToggle'\n \xe2\x86\xb3Window (Main)\n \xe2\x86\xb3Other\n \xe2\x86\xb3Other\n \xe2\x86\xb3Other\n \xe2\x86\xb3Other\n \xe2\x86\xb3Switch, label: 'Test switch', value: 1\n \xe2\x86\xb3Switch, label: 'Test switch', value: 1\nRun Code Online (Sandbox Code Playgroud)\n用户界面如下所示:
\nstruct ContentView: View {\n @State private var toggleValue = true\n var body: some View {\n Toggle("Test switch", isOn: $toggleValue)\n .padding()\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n测试看起来像这样(这两行中的任何一行都会给我同样的错误):
\n func testExample() throws {\n let app = XCUIApplication()\n app.launch()\n \n XCTAssertTrue(app.switches["Test switch"].value as? String == "1")\n// XCTAssertTrue(app.switches["Test switch"].isEnabled)\n }\nRun Code Online (Sandbox Code Playgroud)\n我\xe2\x80\x99m肯定做错了什么。如果 \xe2\x80\x99s 只有一个开关,怎么会出现两个开关呢?我见过的网上文章似乎都没有提到任何与此相关的内容。任何帮助表示赞赏。谢谢 :)
\n我在一些松弛通道中得到了一些回复,事实证明,由于某种原因,使用切换时我不能依赖默认标签进行测试(与文本和按钮不同),并且需要创建自定义辅助功能标识符。
所以只需添加这样的内容:
Toggle("Test switch", isOn: $toggleValue)
.padding()
.accessibilityIdentifier("testSwitch")
Run Code Online (Sandbox Code Playgroud)
然后像这样进行测试:
func testExample() throws {
let app = XCUIApplication()
app.launch()
XCTAssertTrue(app.switches["testSwitch"].isEnabled)
XCTAssertTrue(app.switches["testSwitch"].value as? String == "1")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1994 次 |
| 最近记录: |