如何在iOS XCTest单元测试中测试从右到左的语言?

Evg*_*nii 6 right-to-left ios xctest swift

有没有办法将XCTest单元测试切换到从右到左模式来测试应用程序的阿拉伯语版本,其中句子从屏幕的右侧到左侧写入?我的应用代码逻辑基于语言方向表现不同.我想在单元测试中验证此功能.我需要做的是从XCTest单元测试用例将应用程序切换到从右到左的语言模式.

通过将Scheme的应用程序语言设置更改为从右到左的伪语言,可以以从右到左的模式运行应用程序.有没有办法在单元测试中做类似的事情?

我不完美的解决方案

我最终将semanticContentAttribute测试中的视图更改为.ForceRightToLeft.它做我需要做的事情.虽然它感觉不是一个非常干净的方法.首先,它只适用于iOS 9.其次,看起来我正在从单元测试中修改我的应用程序视图.相反,如果有可能,我宁愿将整个应用程序的语言从右向左切换.

class MyTests: XCTestCase {
  func testRightToLeft() {
    if #available(iOS 9.0, *) {
      let view = UIView()
      view.semanticContentAttribute = .ForceRightToLeft
      // Test code involving the view
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

wak*_*amo 3

semanticContentAttribute除了传递环境标志或像现在所做的那样设置之外,现在没有简单的方法可以通过测试/UI 测试来做到这一点。强烈建议向 Apple提交错误。