使用XCUITests更改设置

Xcode 9增加了编写测试的能力,而现在它可以与“设置”应用程序进行交互。 如果每个人都想禁用位置或将动态字体切换为大字体? -现在有可能。

首先,我们需要像普通应用程序一样午餐设置应用程序,并提供它的捆绑包标识符。

 让settingsApp = XCUIApplication(bundleIdentifier:“ com.apple.Preferences”) 
  settingsApp.launch() 

您可以与设置进行交互,就像使用应用程序一样。 由于“ [MC] 从私人有效用户设置中读取”错误,目前无法使用交互记录。 我已经提出雷达来增加这种可能性。

假设我们要打开和关闭定位服务。 我们可以这样做:

  settingsApp.tables.cells.staticTexts [“ Privacy”]。tap() 
  settingsApp.tables.cells.staticTexts [“位置服务”] .tap() 
 如果settingsApp.switches [“位置服务”] .isSelected { 
  settingsApp.switches [“位置服务”] .tap() 
  settingsApp.buttons [“关闭”] .tap() 
  }其他{ 
  settingsApp.switches [“位置服务”] .tap() 
  } 

最好在teardDown上终止设置,这样我们将在每次测试运行时进入主设置屏幕。

  settingsApp.terminate() 

这是测试的实际效果:

您可以在github上找到要使用的示例项目:https://github.com/PycKamil/XCUITestSettingsExample