2025/03 5

2가지 테스트 코드 접근방법

Mockist 접근방법: 모든 레이어에 모킹 여기서 mock은 fake, stub, mock을 포함한 모든 종류의 테스트 대역을 의미한다는 점을 참고하세요.아래 예제를 살펴보겠습니다. 클래스A가 클래스B, 클래스C에 의존한다고 가정해보겠습니다. 이떄 클래스 A를 테스트할 때 클래스B와 클래스C를 모킹하여 검증합니다. 그러나 클래스 C를 클래스B의 하위로 이동하도록 리팩토링하면 설계가 더 단순해진다는 걸 깨닫겠습니다. 그 결과 클래스 A의 외부 동작은 변하지 않았음에도 불구하고 테스트가 깨지게됩니다.  동일하게 우리의 챗 어플리케이선 예제에 적용해보겠습니다.각 계층에 모킹하기로 결정하면, ViewModel 테스트에서도 모든 의존성을 모킹해야합니다. private fun mockUseCases() { ..

카테고리 없음 2025.03.17

Unit test 다이어트, Mock을 사용하지 않은 BDD

이 주제는 안드로이드콘 런던 2023에서 발표된 내용입니다. 토크는 여기서 보실 수 있고, 슬라이드는 여기서 다운로드받으실 수 있습니다. MVV 앱을 대규모로 리팩토링 속도를 저하시키지 않으면서 유닛 테스트를 하는 방법은 무엇인가?모바일 앱들은 커지고 아키텍쳐적으로 발전하고 있습니다. 기술 부채가 서서히 쌓이면서 지속적인 리팩토링이 필수요소가 됩니다. 같은 시간에 유닛테스트들은 구현은 이끌고, 회귀오류를 방지하며, 문서화하는데에 필수적입니다. 어느순간 단위테스트가 올바르게 작성되지 않으면 리팩토링에 장애물이 될 수 있습니다. 이것 우리가 수년동안 PSS에서 배운 교훈입니다. PSS는 SCRUFF와 JACkd에 퍼블리셔입니다. 이 기사에서는 행동 주도 개발이 이 문제에 대한 해결책을 어떻게 제공하는제 소개..

영어 데일리 2025.03.17

컴포즈에서 ViewModel 생명주기 마스터하기

컴포즈는 안드로이드 개발을 간소화하며, ViewModel과의 통합을 통해 상태 관리를 더욱 원활하고 생명주기를 인식하게 합니다. 이 기사에서는 컴포즈에서 뷰모델이 어떻게 동작하는지 깊게 알아보고, 뷰모델의 생명주기 연관된 부분을 설명하며, 개념을 확실히 다지기 위해 실제 사용사례를 설명하겠습니다. 이 글은 모두에게 무료입니다. 만약 너가 구독을 활성화 하고 싶다면 여기를 클릭하세요. 아닐 경우 쭉 읽어주세요. 컴포즈에서 뷰모델 생명주기 이해하기 컴포즈에서 뷰모델은 기본적으로 생명주기를 의식하는 방식으로 UI관련된 데이터를 저장하고 관리하는데에 사용합니다. 이것은 화면 회전과 같은 구성 변경에도 유지되며, 연결된 생명 주기 소유자가 소멸될때 자동으로 제거됩니다.  핵심1. 생명주기 인식뷰모델은 해당 컴포저..

영어 데일리 2025.03.10