Кто-нибудь знает, почему ожидания XCTest с предикатами так медленны? Мне кажется, что минимальное время выполнения для Swift и Obj C составляет 1 секунду, даже если предикат должен пройти немедленно. Превращение моих ожиданий в if !pred.evaluate(with:obj)
ускорение выполнения теста на несколько порядков.
import XCTest
struct TestObject {
var value = true
}
class SwiftPredicateTestTests: XCTestCase {
func testPerformanceExample() {
let obj = TestObject()
self.measure {
let pred = NSPredicate{(evaluatedObject, _) in
return (evaluatedObject as! TestObject).value
}
let expect = expectation(for: pred, evaluatedWith: obj, handler: nil)
wait(for: [expect], timeout: 30)
}
}
}
measured [Time, seconds] average: 1.013, relative standard deviation: 2.464%, values: [1.087598, 1.002806, 1.003474, 1.001123, 1.004604, 1.007821, 1.004224, 1.005046, 1.005243, 1.007546],