Hou*_*man 19 unit-testing ios ios7 xctest
NSDate *date = [NSDate date];
XCTAssertEqual([[store selectedDate] timeIntervalSinceReferenceDate], [date timeIntervalSinceReferenceDate]);
Run Code Online (Sandbox Code Playgroud)
这给了我错误信息:
(([[store selectedDate] timeIntervalSinceReferenceDate]) equal to ([date timeIntervalSinceReferenceDate])) failed:
("405290648.294") is not equal to ("405290648.294")
Run Code Online (Sandbox Code Playgroud)
我以前遇到过与Integers类似的问题,必须通过将其转换NSUInteger为此处所述来解决.
但我无法弄清楚如何使用NSDate对象/双精度解决这个问题(如本例所示).
Bry*_*hen 30
用于XCTAssertEqualWithAccuracy比较浮点数
XCTAssertEqualWithAccuracy([[store selectedDate] timeIntervalSinceReferenceDate], [date timeIntervalSinceReferenceDate], 0.001);
Run Code Online (Sandbox Code Playgroud)
在早期的 Swift 中你需要使用这个:
let receivedDateTimeInterval = receivedDate.timeIntervalSinceReferenceDate
let expectedDateTimeInterval = expectedDate.timeIntervalSinceReferenceDate
XCTAssertEqualWithAccuracy(receivedDateTimeInterval, expectedDateTimeInterval, accuracy: 0.001)
Run Code Online (Sandbox Code Playgroud)
现在你可以失去“WithAccuracy”部分:
XCTAssertEqual(receivedDateTimeInterval, expectedDateTimeInterval, accuracy: 0.001)
Run Code Online (Sandbox Code Playgroud)