XCTestExpectation不会等待给定的时间

时间:2014-10-15 16:08:54

标签: ios unit-testing swift

我已经编写了一个测试,检查一些值是否会降至零,直到5秒。每一秒NSTimer都会触发一个方法,将该值减1。

看起来像这样:

    let foo = SomeObject(initWithTime: 5)
    let expectation = expectationWithDescription("Ohai")
        timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: foo, selector: Selector("decrement"), userInfo: nil, repeats: true)
    XCTAssertTrue(foo.isFinished, "Foo is finished, so it should be true")
    expectation.fulfill()
    waitForExpectationsWithTimeout(5.0, handler: nil)
当foo达到零时,

isFinished设置为true。定时器工作正常,但期望不等待5秒,只是立即崩溃。发生了什么?

1 个答案:

答案 0 :(得分:0)

似乎您的XCTAssertTrue立即失败,因为foo可能在立即调用时未完成。