いくつかの日付計算をテストする必要がありますが、そのためにNSDate()
は Swift でモックする必要があります。アプリ全体が Swift で書かれているので、テストも書きたいと思います。
メソッドの入れ替えを試みましたが、うまくいきません (または、何か間違ったことをしている可能性が高いです)。
extension NSDate {
func dateStub() -> NSDate {
println("swizzzzzle")
return NSDate(timeIntervalSince1970: 1429886412) // 24/04/2015 14:40:12
}
}
テスト:
func testCase() {
let original = class_getInstanceMethod(NSDate.self.dynamicType, "init")
let swizzled = class_getInstanceMethod(NSDate.self.dynamicType, "dateStub")
method_exchangeImplementations(original, swizzled)
let date = NSDate()
// ...
}
ただしdate
、常に現在の日付です。