티스토리 뷰
🍏/Unit & UI Test
[UI Test] 확장가능한 UI Test로 리팩토링 해보자 (from WWDC 2017 - Engineering For Testability)
eungding 2019. 9. 11. 22:35728x90
반응형
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에도 확장가능성과 깔끔함, 읽기좋음을 선물해주는 개발자가 되자~ 👩💻
반응형
'🍏 > Unit & UI Test' 카테고리의 다른 글
[XCTAssert] XCTAssert의 line 파라미터 (0) | 2019.12.09 |
---|---|
[Unit Test] Testable한 코드를 위한 2가지 스킬과 예제 (from WWDC 2017 - Engineering For Testability) (1) | 2019.09.11 |
[Test-Concept] 테스트 왜 필요하고 해야하는가?! (0) | 2019.09.01 |
[Test-Concept] 테스트 피라미드 (0) | 2019.09.01 |
[Unit Test] 테스트 코드에 대한 다양한 의견들 (0) | 2019.08.20 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Flutter Text Gradient
- ipad multitasking
- DRF APIException
- Flutter Clipboard
- 장고 URL querystring
- Flutter getter setter
- SerializerMethodField
- Flutter Spacer
- Django Heroku Scheduler
- 장고 Custom Management Command
- Sketch 누끼
- Dart Factory
- Flutter 로딩
- Python Type Hint
- flutter 앱 출시
- flutter build mode
- 구글 Geocoding API
- flutter dynamic link
- Django FCM
- flutter deep link
- ribs
- Watch App for iOS App vs Watch App
- cocoapod
- github actions
- Django Firebase Cloud Messaging
- METAL
- 플러터 얼럿
- drf custom error
- 플러터 싱글톤
- PencilKit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함