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

Swift 使用XCUITest时如何更改模拟器上的日期和时间,swift,ios-simulator,xcuitest,Swift,Ios Simulator,Xcuitest,我需要自动化一些UI测试,并且我必须断言一些结果,这些结果只有在将模拟器上的日期更改为未来几天时才会出现。 有人知道在模拟器上不必更改mac上的日期或不使用xcodebuild命令行就可以做到这一点吗?我需要能够在每次测试期间使用不同的值多次更改日期。在应用程序上测试日期的唯一方法是创建日期包装 class DateWrapper { func currentDate() -> Date { return Date() } } 和mockcurrentDate()

我需要自动化一些UI测试,并且我必须断言一些结果,这些结果只有在将模拟器上的日期更改为未来几天时才会出现。
有人知道在模拟器上不必更改mac上的日期或不使用xcodebuild命令行就可以做到这一点吗?我需要能够在每次测试期间使用不同的值多次更改日期。

在应用程序上测试日期的唯一方法是创建
日期
包装

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

和mock
currentDate()
函数,具体取决于您的测试。

请避免使用NS。。。存在相应的本机swift类型时的类型。为什么返回类型是强制展开的?如果使用单元测试会更容易,因为这样您就可以轻松地添加更改代码中使用日期的方法。你能把这些测试改成单元测试吗?