Swift xctasserequal()日期值-如何设置零件精度?



在我的日期单元测试中let day = StockMarketDay(年:2022,月:1,日:4)

let formatter = ISO8601DateFormatter()      // no timezone
formatter.formatOptions = [.withFullDate]
let targetDate = formatter.date(from: "2022-01-04")!
let timeAccuracy = TimeInterval(60*60*24)
let dateAccuracy = Date(timeIntervalSince1970: timeAccuracy)
print("dateAccuracy - (dateAccuracy)")
// XCTAssertEqual(day!.date, targetDate, accuracy: dateAccuracy) // Error
XCTAssertEqual(day!.date, targetDate, accuracy: timeAccuracy) // Error

我得到错误:没有精确匹配调用全局函数' xctasserequal '

似乎泛型AssertEqual函数必须有一个与Accuracy参数匹配的类型(例如Date)。但我似乎无法猜测如何创建一个合适的准确日期来传递。

谁知道一种方法来单元测试日期与指定的准确性?

可能值得尝试使用TimeIntervals而不是日期,因此将xctasserequal更改为:

XCTAssertEqual(day!.date.timeIntervalSince1970, targetDate.timeIntervalSince1970, accuracy: timeAccuracy) 

最新更新