티스토리 뷰

728x90
반응형

WWDC 2017 - Engineering For Testability 의 두번째 세션인 "Scalable Test Code" 에서 보여주셨던
UI Test 리팩토링 예시가 좋아서 기록해둡니다

 

첫번째 예제

 

이런 코드를 

 

이렇게 리팩토링하여 확장가능하게 만들자 

 

 

두번째 예제 

 

난이도를 beginner로, 사운드를 off로 한 상태에서 어떤 것을 테스트하는 코드 입니다 

// test code 뒤에는 아마 Assert문이 들어가겠죠?! 

 

 

이렇게 난이도 설정과 사운드 설정을 분리해서 확장가능성을 높여줍시다 

 

 

더 나아가 설정가능한 값이 제한되어있는 난이도와 사운드이니 enum을 활용하면 더 좋을 것입니다~= 

 

짠! 이렇게 훨씬 깔끔하고 읽기 좋은 UI Test 코드가 되었습니다 

 

더 확장가능하게 만들어봅시다!!!!!!!
이렇게 GameApp이라는 클래스를 만들어주고 configureSettings 이라는 함수도 만들어서 난이도와 사운드 설정이 바뀌어도 사용가능하게 해줍니다

 

최종적으로 테스트함수는 이렇게 바뀌었습니다

 

 

너무 감동적인 확장가능성 업그레이드 이네요.. 🥺

UI Test를 Recording기능에 주로 의존해서 지저분(?) 하게 작성했는데 찔리네요

UI Test에도 확장가능성과 깔끔함, 읽기좋음을 선물해주는 개발자가 되자~ 👩‍💻

 

반응형
댓글