【发布时间】:2014-01-20 11:10:14
【问题描述】:
我正在为我正在编写的地图坐标函数编写一些单元测试。不幸的是,XCTest 发生了一些我无法确定的问题,导致我的测试失败:
NSString *testValue = @"121°31'40\"E";
double returnValue = coordinateStringToDecimal(testValue);
static double expectedValue = 121.5277777777778;
XCTAssertEqual(returnValue, expectedValue, @"Expected %f, got %f", expectedValue, returnValue);
我确实阅读了此similar question 以进行故障排除。但是,我能够验证数字和类型是否相同。这是检查每个值的类型的控制台输出:
(lldb) print @encode(__typeof__(returnValue))
(const char [2]) $5 = "d"
(lldb) print @encode(__typeof__(expectedValue))
(const char [2]) $6 = "d"
调试器中的变量视图显示它们是相同的:
有趣的是在 lldb 中比较它们的控制台输出:
(lldb) print (returnValue == expectedValue)
(bool) $7 = false
类型相同,实际数量相同。为什么我的断言会失败???
【问题讨论】: