Ios 如何实现基于时间的测试?
我有一个与服务器通信并接收XML数据的应用程序。应用程序根据XML中的某些日期在内部状态之间移动 我想为应用程序编写一些测试代码,但在设置测试时是否有任何机制来设置系统时间,然后在测试运行时更改系统时间 我知道用于设置系统时间的API是私有的,但这是针对应用程序的,这不是针对应用程序的测试代码,因此SenTestCaseCase中是否有一些现有的机制来执行类似的操作?充其量也很难 当然,最理想的是某种Mac黑客,它会在iOS模拟器中反映出不同的时基,但我从未听说过这样的事情 如果做不到这一点,你就必须“钩住”你的应用程序。首先(简单部分)查找Ios 如何实现基于时间的测试?,ios,testing,Ios,Testing,我有一个与服务器通信并接收XML数据的应用程序。应用程序根据XML中的某些日期在内部状态之间移动 我想为应用程序编写一些测试代码,但在设置测试时是否有任何机制来设置系统时间,然后在测试运行时更改系统时间 我知道用于设置系统时间的API是私有的,但这是针对应用程序的,这不是针对应用程序的测试代码,因此SenTestCaseCase中是否有一些现有的机制来执行类似的操作?充其量也很难 当然,最理想的是某种Mac黑客,它会在iOS模拟器中反映出不同的时基,但我从未听说过这样的事情 如果做不到这一点,你
[NSDate date]
的所有用法以及相关的“从现在起”用法,并替换为对MyNSDate的引用。此版本的NSDate将钩住“timeIntervalSinceReferenceDate”类方法,并向其提供虚假的时间值
最困难的部分是,不知何故,你的应用程序对所有计时器都很敏感。我不知道你会怎么做。你能重构你的代码,使其不依赖于系统时间,而是将datetime值作为类的函数参数或属性吗?有时这是一个简单的解决方案。我可以对这样的代码进行一些单元测试,但我需要进行一些整体系统测试。我可以修改XML,使它们之间的时间间隔为几秒钟,这样测试代码就可以在短时间内转换状态,但要确定,我仍然需要能够在测试运行之前重复设置时间。