Slide 16
Slide 16 text
3. Method Injection
(another pattern)
struct DateManager {
private let formatter: NSDateFormatter = {
let formatter = NSDateFormatter()
formatter.dateStyle = .MediumStyle
return formatter
}()
func today(date: NSDate = NSDate()) -> String {
return formatter.stringFromDate(date)
}
}
let dateManager = DateManager()
// Production
print(dateManager.today()) // prints "Feb 13, 2016"
// Test
XCTAssertEqual(
"Jan 1, 1970",
dateManager.today(NSDate(timeIntervalSince1970: 0.0)))
Date can be injected for test