使用XCUITest时如何在模拟器上更改日期和时间

问题描述

我需要自动化一些UI测试,并且我必须断言某些结果,这些结果仅在将模拟器上的日期更改为未来几天的情况下才会发生。 有谁知道在模拟器上执行此操作的任何方式,而无需在Mac上更改日期或不使用xcodebuild命令行?我需要能够在测试期间多次使用不同的值更改日期。

解决方法

在应用上进行测试的唯一方法是创建一个Date包装器

class DateWrapper {
   func currentDate() -> Date {
      return Date()
   }
}

并根据测试模拟currentDate()函数。