Я пишу модульный тест, чтобы проверить, что мое преобразование из даты в строку и обратно прошло успешно.
Я преобразую его в строку с помощью:
func convertDateToString(date: Date) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter.string(from: date)
}
и преобразую обратно через:
func convertStringToDate(string: String) -> Date {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return dateFormatter.date(from: string)!
}
Если вы попытаетесь использовать протокол Equatable в дату до конверсии и в дату после конвертации, он скажет, что они не совпадают. Тем не менее, если вы преобразуете даты до и после в строки и сравниваете их, они равнозначны. Это то, что он говорит, когда я запускаю XCAssertEqual до и после даты:
XCTAssertEqual failed: ("2020-01-22 19:35:40 +0000") is not equal to ("2020-01-22 19:35:40 +0000")
Что выглядит довольно идентично для меня. Я даже попытался преобразовать дату перед преобразованием в строку и обратно, чтобы проверить, были ли даты равны, и они все еще не были