iOS / Swift中的UI测试

问题描述 投票:0回答:1

我是iOS UITesting的新手。我正在使用XCTest为我的应用程序编写UITest。我能够测试UIElement是否可见或隐藏特定按钮时。但我想测试是否在点击按钮时调用某个方法。这该怎么做?这是否属于UI测试?

我还想在仅触发某些发送事件而不是点击时测试UIElements可见/隐藏。我们可以测试按钮的Touch DownTouch Up Inside等发送的事件吗?任何帮助表示赞赏。谢谢。

ios swift user-interface xctest xcode-ui-testing
1个回答
1
投票

第一部分(测试元素是否可见/可命中)很容易:

let button = app.buttons["yourButton"]
let element = app.cells["yourElement"]

button.tap() //tapping the button, so the element appears

if element.exists == false {
  //fail the test with custom message
}

if element.isHittable == false {
  //fail the test with custom message
}

您可以使用XCTAsserts作为上述条件,但上述条件可能会失败并显示自定义消息。此外 - 如果您的元素不立即可见,请使用.waitForExistence而不是.exists

第二部分不应该(也不能)通过UI测试进行测试 - 如果元素在与之交互时发送正确的日志,则应该进行单元测试以进行检查。

是的,你可以(在理论上)使用带有控制台输出的断言,如@ΒασίληςΔ's所示。回答,但这不是做UI测试的正确方法。


0
投票

您可以通过UI测试从技术上测试Touch downTouch up inside事件,但不能以非常干净的方式测试。

您可以通过在委托方法中添加_touchdown_touchupinside来修改元素可访问性标识符。然后,在UI测试中,您可以检查元素标识符是否包含标记。

© www.soinside.com 2019 - 2024. All rights reserved.