如何测试内部调用 NSDate() 的方法?
How can I test the method that has NSDate() call inside?
extension NSDate {
class func todayDateFromMidnightForSeconds(seconds: NSTimeInterval) -> NSDate {
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let startOfTheCurrentDay = calendar.startOfDayForDate(NSDate())
return startOfTheCurrentDay.dateByAddingTimeInterval(seconds)
}
}
如何在我的自定义方法中模拟我的 NSDate()
以正确地测试它?
您只需从您的方法中删除 "class" 声明并将 NSDate() 替换为 self 如下:
extension NSDate {
func dateFromMidnightForSeconds(seconds: NSTimeInterval) -> NSDate {
return NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!.startOfDayForDate(self).dateByAddingTimeInterval(seconds)
}
}
NSDate().dateFromMidnightForSeconds(60) // "Jun 12, 2015, 12:01 AM"
extension NSDate {
class func todayDateFromMidnightForSeconds(seconds: NSTimeInterval) -> NSDate {
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
let startOfTheCurrentDay = calendar.startOfDayForDate(NSDate())
return startOfTheCurrentDay.dateByAddingTimeInterval(seconds)
}
}
如何在我的自定义方法中模拟我的 NSDate()
以正确地测试它?
您只需从您的方法中删除 "class" 声明并将 NSDate() 替换为 self 如下:
extension NSDate {
func dateFromMidnightForSeconds(seconds: NSTimeInterval) -> NSDate {
return NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!.startOfDayForDate(self).dateByAddingTimeInterval(seconds)
}
}
NSDate().dateFromMidnightForSeconds(60) // "Jun 12, 2015, 12:01 AM"