我是iOS UITesting的新手。我正在使用XCTest
为我的应用程序编写UITest。我能够测试UIElement
是否可见或隐藏特定按钮时。但我想测试是否在点击按钮时调用某个方法。这该怎么做?这是否属于UI测试?
我还想在仅触发某些发送事件而不是点击时测试UIElement
s可见/隐藏。我们可以测试按钮的Touch Down
或Touch Up Inside
等发送的事件吗?任何帮助表示赞赏。谢谢。
第一部分(测试元素是否可见/可命中)很容易:
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测试的正确方法。
您可以通过UI测试从技术上测试Touch down
和Touch up inside
事件,但不能以非常干净的方式测试。
您可以通过在委托方法中添加_touchdown
或_touchupinside
来修改元素可访问性标识符。然后,在UI测试中,您可以检查元素标识符是否包含标记。