이 함수가 하는 일은 세 가지다.
• user 객체가 올바르게 채워졌는지 검증한다.
• 검증을 마친 user 객체를 서버로 전송한다.
• UI에 메시지를 표시한다.
관심사는 세 가지로 요약된다.
• 사용자 검증
• 서버와 직접 통신
• UI 직접 다루기
자, 그럼 validateAndRegisterUser 함수가 작동하는지 테스트할 조건을 모두 나열해보자. 뭐라 하지 않을 테니 시간을 충분히 두고 고민해보라.
어떤 조건들이 있을까? 아주 많다. 우리가 떠올린 조건은 이렇다.
• user가 null이면 에러를 낸다.
• null인 user는 서버로 전송하지 않는다.
• user가 null이면 UI를 업데이트하지 않는다.
• user가 undefined이면 에러를 낸다.
• undefined인 user는 서버로 전송하지 않는다.
• user가 undefined이면 UI를 업데이트하지 않는다.
• user의 name 프로퍼티가 빈 상태면 에러를 낸다.
• name 프로퍼티가 빈 user는 서버로 전송하지 않는다.
• user의 name 프로퍼티가 비어 있으면 UI를 업데이트하지 않는다.
이 밖에도 오류 조건은 더 있다. 사실 아주 많다. UI가 제대로 업데이트되는지, 유효 조건이 정확히 작성되었는지 역시 테스트해보아야 한다.