繁体   English   中英

用6次重复测试TapGesture(iOS和Swift)

[英]Testing TapGesture with 6 repeats (iOS and Swift)

这可能很有趣。 我正在XCode中设置UI测试。 我的应用程序的一部分需要用户点击屏幕6次才能执行特定操作。 代码如下。

        let tapGesture = UITapGestureRecognizer(target: self,action:#selector(self.doSomething(_:)))
        tapGesture.numberOfTapsRequired = 6
        aView.addGestureRecognizer(tapGesture)

我遇到麻烦的地方是测试此手势识别器。 以下代码由测试记录器创建,但仅在测试时不起作用。

    let app = XCUIApplication()
    let elem = app.otherElements.containingType(.Image, identifier:"elementName").element
    elem.tap()
    elem.tap()
    elem.tap()
    elem.tap()
    elem.tap()
    elem.tap()

我什至尝试在每个元素之间添加一个稍微的延迟(大约我尝试了1.0到0.02秒之间的值),但是似乎没有任何效果。

有什么想法吗?

到目前为止,这是我所发现的。 以最快的速度,在UI测试器中轻按一下会花费一秒钟多一点的时间,这太长了(甚至还不能完全关闭)。 因此,我不得不采取一种解决方法(又名:hack)

这是我的解决方法。

  1. 在UITests目标中,我添加了“ Other Swift Flags” “-D TEST” 现在,从我的代码中,我可以在主项目中使用预处理程序检查。 '#if TEST'。
  2. 我在相关视图的ui上添加了一个按钮。 通过标准的“ touch up inside”事件处理程序进行连线。
  3. 在我的视图控制器中,我做了这样的事情:

    #if!TEST

    myButton.hidden = true

    #万一

  4. 修改了我的UI测试代码以找到该按钮,然后进行简单的点击。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM