안녕하세요!
요즘 TDD를 위해 Swift의 Unit Test, UI Test를 학습하고 있었습니다
그런데 UI Test 학습 중에 예상치 못한? 문제를 겪게 되었습니다
아래의 상황은 회원가입 버튼을 누른 후 Success Alert가 나와야 하는데,
Error Alertr가 나와 Test가 실패했다는 내용입니다
저는 음? 싶었던 게 저기 내부 함수의 검증 동작들은 Unit Test에서 이미 다 통과가 되었었거든요
그런데 UI Test에서 직접 입력을 동작시키니까 Fail이 뜬 겁니다
그래서 Break를 걸어서 에러가 나오는 구간을 잡아봤습니다
그랬더니 저기서 딱 걸리더라고요
그런데 passwordMinLength값이 8이고 테스트를 위한 값도 8자리 이상을 주었기 때문에
테스트에 실패할 이유가 없는데... 하고 스크린샷을 보았더니
어? 비밀번호 텍스트 필드에 제가 설정한 테스트 비밀번호 "12345678"이 아니라
"Automatic Strong Password cover view text"가 입력되어 있습니다
생각해 보니 비밀번호 입력 텍스트 필드가 Secure Text Entry 처리가 되어있었습니다.
실제로 테스트 동작을 녹화해 보니 다음과 같이 동작했습니다.
아마 Secure 처리가 되어있어서 자동으로 강력한 암호가 선택된 거 같은데...
이 강력한 암호도 결국 문자열일 텐데 왜 8자리 조건에서 Fail이 뜨는지는 모르겠습니다
(강력한 암호가 8자리를 안 넘나? 그럼 강력한게 맞나?)
8자리 조건을 주석처리하니 아래처럼 테스트가 통과되었습니다.
혹시 몰라서 앱을 직접 동작시키면서 비밀번호를 입력해보기도 했습니다!
결과 8자리 조건을 아래처럼 잘 통과합니다
다른 조건들도 Break로 확인해 보고 테스트해 봤는데 나머지는 다 작동하더라고요.
심지어 비밀번호 - 비밀번호 확인으로 이루어진 텍스트 조건도
자동으로 동일하게 쳐주는지 테스트가 통과되었습니다.
정말 왜 글자수 조건만 문제가 있는 걸까요?...