【问题标题】:Testing for daylight saving time within Cocoa and CocoaTouch在 Cocoa 和 CocoaTouch 中测试夏令时
【发布时间】:2015-05-26 11:49:15
【问题描述】:

我正在开发一个日历应用程序,该应用程序需要绘制矩形,其高度和垂直位置基于它们所代表的事件的开始日期。我正在尝试针对具有夏令时的日期和时区测试布局系统。具体来说,我想说明这样一个事实,即在某些地区,夏令时可以在一天中删除/增加一个小时。

目前,我不知道如何针对夏令时编写单元测试。

【问题讨论】:

    标签: objective-c cocoa unit-testing nsdate


    【解决方案1】:

    请参阅NSTimeZone 类参考。它有一个方便的BOOL 属性,称为-daylightSavingTime and related friends,您可能会觉得很有用。您可以create a date with a specific time zone / 日期组合来获取您需要的内容并提供它而不是系统提供的时间。

    但是,我不确定是否有办法以编程方式更改系统时间(即使在模拟器中)。我没有尝试过这样的事情,但也许创造性地使用一些预处理器宏和/或环境变量可以让你在测试状态之间切换。

    【讨论】:

    • 谢谢 Joshua,我会将您的答案与 swizzling 结合起来,我所有调用 [NSCalendar currentCalendar] 的方法都应该有我需要使用的时区。
    猜你喜欢
    • 2016-10-15
    • 2013-11-22
    • 1970-01-01
    • 2011-09-03
    • 2012-10-16
    • 2016-06-18
    • 2012-10-23
    • 2016-02-02
    相关资源
    最近更新 更多