如何使用XCUItest设置UserDefaults

时间:2019-10-03 16:37:37

标签: ios nsuserdefaults xcuitest

我正在使用XCUITest进行iOS UI测试。 由于我们无权访问该应用,因此如何设置该应用的默认设置?

4 个答案:

答案 0 :(得分:1)

您可以使用启动参数传递所有必需的数据。

请阅读文档

https://developer.apple.com/documentation/xctest/xcuiapplication/1500477-launcharguments

另一种方法(且速度稍慢)是使用深层链接。

答案 1 :(得分:1)

这听起来比实际要复杂得多,但是对我有用的一种技术是在测试套件中设置一个HTTP服务器,您可以用它来获取测试代码中的模拟数据。我在Embassy and Ambassador上取得了成功。

因此,您将传递一个启动参数,告诉您的应用程序代码从服务器获取。对于UserDefaults而言,用于向本地端点发出这些特定请求的帮助程序类很好地工作。不幸的是,这意味着您的应用程序代码必须进行一些设置以进行测试,但是根据您的需要,这可能是一个很好的折衷方案。

答案 2 :(得分:0)

另一个跨越过程边界的可能解决方案:

如果您不进行设备测试,则可以访问“ SIMULATOR_SHARED_RESOURCES_DIRECTORY”,并在文件中提供数据以供测试使用。

在实际设备上,这将更加困难,因为您需要使用共享的Group容器。

答案 3 :(得分:0)

您可能可以使用“应用程序数据包”。在这种情况下,您将应用程序状态保存到容器中,然后在保存的环境中运行测试。 有很多指南,只是其中之一:

https://www.codementor.io/paulzabelin/xcode-app-data-suni6p4ma

这可能是我需要的功能更强大且过于复杂的东西,但它打开了无限的可能性;)