在单元测试中点击 UIButton 内的特定 CGPoint

Posted

技术标签:

【中文标题】在单元测试中点击 UIButton 内的特定 CGPoint【英文标题】:Tapping a specific CGPoint inside UIButton in Unit Tests 【发布时间】:2016-11-25 13:17:42 【问题描述】:

我有一个 UIButton 子类,它会覆盖 hitTest 方法。我需要测试在特定点点击是否符合我的要求。我打算在单元测试中进行此实现。

但是,模拟一般按钮点击不是问题,我不知道如何在特定坐标中模拟这种点击。请问有什么帮助/提示吗?

【问题讨论】:

我从来不需要这样做,但不是寻找“点击”,而是搜索“点击识别器”。我做了并发现了这个 3 岁的 SO 问题,它可能会给你一条路线(解决方案中有 3 个选项)。 [链接]***.com/questions/14094691/… @dfd 这些都不允许选择给定点。 【参考方案1】:

嗯,事实上,在 UI 测试而不是单元测试中对其进行测试更容易。

但是:如果您也想这样做,请考虑您的 UI 组件可能会在其他类中使用,您可能不会“复制”所有测试。稍后有人可以从原始位置删除您的 UI 组件的使用,结果 - UI 测试。在这种情况下,您的 UI 组件将被使用但不会被测试!

所以我的建议是创建一个包含测试的组件的子项目。另一个好处是您无需等到这些额外的 UI 测试在您的主项目中完成。

【讨论】:

以上是关于在单元测试中点击 UIButton 内的特定 CGPoint的主要内容,如果未能解决你的问题,请参考以下文章

如何使单元格中的 UIButton 在被点击后立即保持特定状态?

修改 UICollectionView 中特定单元格中的 UIButton

表内的 UIButton 未触发

如何禁用 tableview 特定行但特定行包含 uibutton。按钮必须访问

如何使用 UIButton 为单元格设置动画?

uipageviewcontroller内的UIbutton点击崩溃