gpt4 book ai didi

cocoa - STAssertEquals NSTimeIntervals

转载 作者:行者123 更新时间:2023-12-03 17:43:21 25 4
gpt4 key购买 nike

我正在为我的 cocoa 类编写单元测试用例。下面是测试用例。我无法弄清楚为什么这个测试用例失败,即使断言消息中的 expectdiff 是相同的。我怀疑这可能与 double 或 NSTimeInterval 的计算方式有关


NSTimeInterval 天 = 60*60*24;



NSDate * 当前 = [NSDate 日期];

NSDate * daysAgo = [NSDate dateWithTimeInterval:-6*天sinceDate:当前];

NSTimeInterval diff = [当前时间IntervalSinceDate:daysAgo];

NSTimeInterval 期望 = 6 * 天;

STAssertEquals(expect, diff, @"期望失败:%ld,获取 %ld", Expect, diff);

最佳答案

您正在比较 NSTimeIntervals,其类型定义为 double。阅读例如http://floating-point-gui.de/ (或 http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html )以找出为什么不能对浮点/ double 计算使用精确比较。您应该始终比较间隔,例如通过使用

STAssertEqualsWithAccuracy(expect, diff, 0.001, @"期望失败:%ld,获取 %ld", Expect, diff);

关于cocoa - STAssertEquals NSTimeIntervals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5877629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com