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



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

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

我设置了断点,在测试期间肯定会调用通知,waitForExpectionsWithTimeout在打印"已加载"时继续执行。

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

self.measureBlock内部的方法被调用10次。其中的"测量"部分采用这10次跑步的平均值来计算平均值。如果Loaded通知没有收到10次,那么您将暂停。我想这是你的问题。

最新更新