【发布时间】:2015-12-01 01:28:10
【问题描述】:
我有一个解除警报的 UI 测试,检查警报是否已解除(如果没有,它会再次尝试解除),然后继续进行其余的测试。
大多数情况下,测试都顺利通过,但有时看似随机(尽管更常见的是在硬件较旧的机器上的模拟器中),测试将执行以下操作:
- 检查警报
- 点击关闭警报的按钮
- 警报被解除
- 检查警报(并且仍然找到它 - 我已经记录了此时的查询,它确实找到了刚刚解除的相同警报)
- 尝试点击关闭警报的按钮
- 抱怨找不到alert而失败
几点说明:
- 到目前为止,我在使用调试器单步执行测试时还没有观察到这种行为。
- 在解除警报后强制测试稍等片刻(使用诸如 usleep() 之类的东西)仍然会导致此行为。
为什么在解除警报后查询仍然可以找到警报?为什么这种行为看似随机?
【问题讨论】:
-
有趣...所以这个问题似乎源于警报与键盘同时显示的事实。我已修改测试以在显示警报之前关闭键盘,并且测试似乎不再失败。
标签: ios xcode-ui-testing