在 Xcode 单元测试中测量期望时间

Posted

技术标签:

【中文标题】在 Xcode 单元测试中测量期望时间【英文标题】:Measure expectation time in Xcode Unit Testing 【发布时间】:2016-05-06 00:36:42 【问题描述】:

我想计算在我的应用中调用通知需要多长时间。我有一个这样的测试设置:

func testLoadingPerformance() 
    self.measureBlock 
        self.expectationForNotification("Loaded", object: nil, handler: nil)
        self.waitForExpectationsWithTimeout(30, handler: nil)
        print("loaded")
    

我已经设置了断点,并且在测试期间肯定会调用通知,并且 waitForExpectationsWithTimeout 在打印“加载”时继续执行。

然而,测试在 Xcode 中永远不会完成,它只会运行直到超时。我知道这个块肯定被执行了,为什么它不会通过呢?

【问题讨论】:

【参考方案1】:

self.measureBlock 内部的方法被调用了 10 次。其中的“测量”部分取这 10 次运行的平均值来计算平均值。如果 10 次未收到 Loaded 通知,那么您将停止。我希望这是你的问题。

【讨论】:

以上是关于在 Xcode 单元测试中测量期望时间的主要内容,如果未能解决你的问题,请参考以下文章

测试驱动开发 (TDD):在 Xcode 4 中编写单元测试

如何在 Xcode 中为 Apple Watch 添加单元测试?

使用 XCode 3 对 iPhone 静态库进行单元测试

将单元测试移动到 xcode 中的不同文件夹

设置 UI 测试 Xcode 7 后单元测试永远不会运行

Xcode 单元测试,在 `class setUp()` 中等待