2017-11-28 12 views
0

ログインするにはSwiftテストが必要です。コードに資格情報を保存したくありません。 XCTestの外にある構造体や、高速で解析できるファイルを作成するには、どうすれば信用状をハードコードする必要はありませんか?私はiOSシミュレータをMacアプリでテストしていません。すぐにXCTestの外部ファイルにアクセスするには

は現在、私は、プロジェクト内の構造体でそれを持っている

struct Config { 
static let USERNAME = "[email protected]" 
static let PASSWORD = "test" 
} 
+0

辞書オブジェクトを解析実際の資格情報を使用するには? – MXV

答えて

1
あなたはの.plistファイルを使用して試みることができる

guard let file = Bundle.main.path(forResource: "file", ofType: "plist"), 
    let configuration = NSDictionary(contentsOfFile: file) as? [String: Any] 

else { 
    return 
} 
0

Iのいずれかを持っていたとして、私は完全な信用を取っていないよOK私の開発者は私がこれを書くのを助けますが、私はそれを説明することができ、将来このことが他の人に利益をもたらすことを望みます。

  • まず、できる辞書を作成するプロパティを追加plistファイルでは、プロジェクト
  • でplistファイルを作成し、
  • 値ヒントをありがとうの@MXVは任意とキャストタイプ辞書の文字列にかかります

    var plistDictionary:Dictionary<String, Any>? { 
    get { 
        guard 
         let path = Bundle(for: type(of: self)).path(forResource: "config", ofType: "plist"), 
         let configDictionary = NSDictionary(contentsOfFile: path) 
         else { return nil } 
        return configDictionary as? Dictionary 
    }} 
    
  • 作成したplistファイルを使用していますvarがplistDictionary

    を使用する機能を作成します。テスト・スクリプトで0
    func plistValueForKey(_ key:String) -> Any? { 
    return plistDictionary?[key] ?? nil 
    

    }

  • plistDictionaryに電話をかけると、あなたが持っていないので、あなたはモックサーバの応答を使用していないのはなぜ

    func enterEmail() { 
    emailField.tap() 
    if let email = self.plistValueForKey("Username") as? String { 
        emailField.typeText(email) 
    } 
    
関連する問題