2017-11-28 20 views
0

로그인하려면 Swift 테스트가 필요하며 코드에 자격 증명을 저장하지 않으려합니다. XCTest 외부의 구조체를 만들거나 신속하게 구문 분석 할 수있는 파일을 만들면 cred를 하드 코딩 할 필요가 없습니다. 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) 
    }