0

我有一个与服务器通信并接收 XML 数据的应用程序。应用程序根据 XML 中的某些日期在内部状态之间移动。

我想为应用程序编写一些测试代码,但是在为测试设置内容时是否有任何机制可以设置系统时间,然后在测试运行时更改系统时间?

我知道用于设置系统时间的 API 是私有的,但那是针对应用程序的,这不是针对其测试代码的应用程序,因此 SenTestCaseCase 中是否存在一些现有机制来执行此类操作?

4

1 回答 1

0

很难。

当然,理想的情况是某种 Mac hack,可以将不同的时间基准反映到 iOS 模拟器中,但我从未听说过这样的事情。

如果做不到这一点,您将不得不“挂钩”您的应用程序。首先(简单的部分)找到MyNSDate 的所有使用[NSDate date]和相关的“从现在开始”使用并替换为对 MyNSDate 的引用。这个版本的 NSDate 将挂钩“timeIntervalSinceReferenceDate”类方法并“提供”它虚假的时间值。

困难的部分是以某种方式使您的应用程序敏感的所有计时器都变得笨拙。我不知道你会怎么做。

于 2013-08-05T18:16:32.330 回答