2017-05-13 5 views
0

현재 iOS 애플리케이션에서 일부 테스트를 수행하려고하는데 문제가 있습니다.신속한 UI 테스트 - XCTAssertEqual의 동작이 잘못되었습니다.

let passwordField = app.secureTextFields["Password"] 
passwordField.tap() 
passwordField.typeText("Password") 

let password = passwordField.value as? String 
guard let testPassword = password, !testPassword.isEmpty else { 
    XCTFail("Authentication tests failed : password field is wrongly formatted.") 
    return 
} 

XCTAssertNotEqual(password, "Random password") 
XCTAssertEqual(password, "Password") 

XCTAssertNotEqual 부분은 좋지만, XCTAssertEqual가되지 않습니다 :

여기에 (내가 바로 후에 문제를 설명합니다) 내 코드입니다. 다음 오류는 다음과 같습니다

XCTAssertEqual failed : (“Optional(“********”)”) is not equal to (“Optional(“Password”)”) 

누군가가이 오류를 던져 않는 이유 아이디어가 있습니까? 나는 이것이 안전한 텍스트라는 사실을 가지고 "놀아야"만하지만 나는 아직 어떤 대답도 찾지 못했다고 생각한다.

도움 주셔서 감사합니다.

+0

를 잘못된 비밀번호로 로그인을 시도하고, 올바른보다, 당신의 응답을 테스트보다, 인증을 테스트하려는 경우 UITextField에서 'value'의 값. – Chris

+0

불행히도 UITextField (XCUIElement)가 아니므로 "테스트"를 얻을 수있는 유일한 방법은 원하는 유형의 필드 캐스팅 값을 가져 오는 것입니다. – NPanda

답변

1

XCTAssertEqual에는 아무런 문제가 없습니다.

`*********` is not equal "Random password" 

두 번째 때문에 콘솔에서 볼 수있는 오류 메시지의 실패 때문에

첫 번째 문

XCTAssertNotEqual(password, "Random password") 

는 권리입니다.

개인적으로 여기서 테스트하기위한 논리는 다소 엉망이라고 생각합니다. 우선, 보안 텍스트를 일반 텍스트로 바꾸는 인터페이스가 없다고 생각합니다. XCUIElement

둘째로, textField에 무엇이 있는지 확인하고 싶습니다. 그것은 당신이 거기에 무엇을 입력했는지, 네이티브 IOS UI 요소 아주 기본적인 기능을 테스트 할 필요가 없다는 것을 확실히 할 것입니다.

당신은 내가 대신 '텍스트'에 액세스해야한다고 생각 BE