Can't get access to string localizations in UI Test (Xcode 7)

后端 未结 2 1306
情书的邮戳
情书的邮戳 2020-12-14 02:52

So I have a situation in which I have a few textFields that are validated. I\'m trying to run a UI test, and when they fail they will get an alert to pop up with an error me

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-14 03:45

    Here is my solution:

    1. In your UI Tests target -> Build Phases -> Copy Bundle Resources, add the needed localization files (e.g. Localizable.strings).

    2. Add a function similar to the following:

      func localizedString(key:String) -> String {
          /*1*/ let localizationBundle = NSBundle(path: NSBundle(forClass: /*2 UITestsClass*/.self).pathForResource(deviceLanguage, ofType: "lproj")!) 
          /*3*/ let result = NSLocalizedString(key, bundle:localizationBundle!, comment: "") // 
          return result
      }
      
      
      /*1 Gets correct bundle for the localization file, see here: http://stackoverflow.com/questions/33086266/cant-get-access-to-string-localizations-in-ui-test-xcode-7 */
      /*2 Replace this with a class from your UI Tests*/ 
      /*3 Gets the localized string from the bundle */
      
    3. Use the function like this: app.buttons[localizedString("localized.string.key")]

提交回复
热议问题