我有一个函数,不需要每隔10秒钟调用一次。每次调用该函数时,我将计时器重置为10秒。
class MyClass {
var timer:Timer?
func resetTimer() {
self.timer?.invalidate()
self.timer = Timer.scheduledTimer(withTimeInterval: 10.0, repeats: false) {
(timer) -> Void in
self.performAction()
}
}
func performAction() {
// perform action, then
self.resetTimer()
}
}
我希望测试手动调用performAction()方法是否会将计时器重置为10秒,但我似乎找不到好的方法来测试它。桩resetTimer()方法感觉这个测试并不能告诉我足够多有关功能的信息。我是不是漏掉了什么?
XCTest:
func testTimerResets() {
let myObject = MyClass()
myObject.resetTimer()
myObject.performAction()
// Test that my timer has been reset.
}
谢谢!
XCTestExpectation
。 - Rob