【问题标题】:iOS: Unit Testing UIViewController Components with XCTestiOS:使用 XCTest 对 UIViewController 组件进行单元测试
【发布时间】:2015-09-21 09:43:31
【问题描述】:

我正在 Swift 的视图控制器中对 iOS UIButton 的功能进行单元测试。该按钮的预期功能如下:

  1. 按钮最初的标题是“开始”
  2. 按下按钮后,标题变为“暂停”

简而言之,我想测试一下按钮被点击后,按钮的标题从“开始”变为“暂停”。

因为系统在更改发生并呈现在屏幕上之前需要一点时间,所以我需要轮询一小段时间来检查按钮的当前标题,直到按钮标题更改或分配的时间用完了。

通常,我使用 Quick/Nimble 框架进行单元测试,并使用expect(...).toEventually(...) 函数来测试这种轮询。但是,我的团队坚持我使用 XCTest 框架是为了保持一致性,所以我必须找到一些优雅的方式来使用 XCTest 实现测试。

您对 XCTest 框架的实现有什么建议吗?

【问题讨论】:

    标签: ios swift unit-testing


    【解决方案1】:

    我能想出的解决方案是使用NSTimer,它每隔一小段时间触发一次条件检查,直到指定的时间用完,然后使用XCTestExpectationwaitForExpectationsWithTimeout 等待完成。 (查看更多关于 XCTestExpectation here

    有没有更好的方法来实现这个单元测试?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      相关资源
      最近更新 更多