我有一个与服务器通信并接收XML数据的应用程序。应用程序根据XML中的某些日期在内部状态之间移动。
我想为应用程序编写一些测试代码,但是在设置测试时是否有任何设置系统时间的机制,然后在测试运行时改变系统时间?
我知道用于设置系统时间的API是私有的,但这适用于应用程序,这不适用于应用程序的测试代码,因此SenTestCaseCase中是否存在一些现有机制来执行此类操作?
答案 0 :(得分:0)
充其量是困难的。
当然,理想的是某种Mac hack会反映iOS模拟器的不同时基,但我从来没有听说过类似的东西。
如果不这样做,你必须“挂钩”你的应用程序。首先(简单部分)找到 [NSDate date]
的所有用法,相关的“从现在开始”使用和替换对MyNSDate的引用。这个版本的NSDate将挂钩“timeIntervalSinceReferenceDate”类方法并“提供”它伪造的时间值。
困难的部分是以某种方式哄骗你的应用程序敏感的所有计时器。我不知道你会怎么做。