💡우아한테크코스 과정에시 진행한 LiveData를 포함한 테스트에 대하여 기록하였습니다. LiveData Testing안드로이드의 LiveData는 Android에서 UI와 데이터 상태를 관찰할 수 있도록 설계된 구조입니다.LiveData는 Lifecycle에 의존하기 때문에 직접 테스트하기에는 복잡할 수 있으며, 이를 해결하기 위해서 라이프사이클을 수동으로 조작하거나 JUnit과 함께 테스트 도구를 활용해야 합니다. JUnit4 +InstantTaskExecutorRuleLiveData는 기본적으로 백그라운드 스레드에서 동작합니다.InstantTaskExecutorRule를 활용하면 이를 테스트 환경에서 제어 가능하게 하며, 스레드 문제를 회피할 수 있습니다.InstantTaskExecutorRule..
💡 UI 작업을 XML과 Code, Jetpack Compose 진행했을 때의 차이를 비교하고 테스트를 진행하였습니다. 개요XML과 Programmatically 방식에 대한 차이점이 궁금하던 중 직접 테스트한 블로그를 발견하여 학습하게 되었습니다.Performance comparison: building Android Layout with XML vs By Code vs Jetpack Compose Performance comparison: building Android Layout with XML vs By Code vs Jetpack ComposeThe time required to create the activity layout in XML vs by code programmatically vs..
💡 우아한테크코스 과정을 진행하면서 배웠던 UI 테스트에 대하여 다시 한번 돌아보고 학습하는 시간을 가졌습니다 ! UI 테스트사용자와 앱 간에 인터페이스가 올바르게 작동하는지 확인하려면 UI 테스트를 진행하는 것이 좋습니다.UI 테스트를 작성하면 복잡한 UI 로직이나 기존에 개발되어 있는 인터페이스를 보장합니다.테스트 코드의 필요성테스트 코드를 작성하면 장애에 관한 신속한 피드백이 가능합니다.개발 주기에서 초기 장애를 감지하고, 더 안전한 코드 리팩터링을 제공합니다.또한 기술적 문제를 최소화하기 때문에 안정적인 개발 속도를 얻을 수 있습니다.계측 테스트(Instrumentation Test)앱의 실제 디바이스 또는 애뮬레이터에서 동작하는 테스트를 실행하는 데 사용됩니다.애뮬레이터를 켜고 앱을 빌드하여 ..
💡 테스트 환경에서 private 메소드를 검증해야 하는 경우가 발생하였고, 이를 해결하기 위한 방법을 학습하였습니다. private 함수 테스트 문제점MonthPicker 클래스는 유효한 달을 검사하고, 모든 달의 일을 30일로 가정하여 합을 구하는 클래스입니다.makeDays를 통해서 내부의 가변인자로 들어온 값이 모두 정확한 달인지 isValid를 통해 검사하고 있습니다.class MonthPicker() { fun makeDays(vararg months: Int): Int { if (isValid(*months)) throw IllegalArgumentException(ERROR_MONTH) return months.reduce { acc, month -> ..