Develop/KMP, CMP3 [DroidKnights] Retrofit -> Ktor 마이그레이션 오늘은 필자의 "첫 컨트리뷰션 도전기"에 대해 적어보고자 한다. 항상 오픈소스에 기여를 하고 싶다는 생각이 있어서 여러 오픈소스의 이슈들을 주의깊게 보고 있었다. 그러다 마침 '국내 최대 규모 안드로이드 컨퍼런스 드로이드나이츠 앱'에서 KMP로 마이그레이션하면서 여러 이슈들이 올라온 것을 보았다. 이미 UI를 다루는 이슈들은 대부분 다른 분들이 하겠다고 하셔서 남아 있는 이슈들 중에 골랐다. Koin으로 마이그레이션 하는 이슈와, Ktor로 마이그레이션 하는 이슈가 중에 고민이 되었다. Koin은 저번에 마이그레이션을 한 경험이 있었기 때문에 이미 알고 있는 이슈보다는 새로운 기술에 도전해보면서 내 스스로도 성장을 하고 싶어 Ktor 마이그레이션 이슈를 고르게 되었다! 💡해당 이슈는 아래에서 확인이 가.. 2025. 5. 28. [KMP] Kotest로 알아본 Stub vs Fake (테스트 더블) 📚 책의 가장 마지막 장인 12장에서는 "코루틴 단위 테스트"에 대해 다룬다.이때 테스트 더블에 대해 설명해주면서 그 종류 중 하나인 Stub을 들어주었다. 그러나 책을 읽던 당시의 나는 테스트 코드를 처음 접했기에 Stub을 왜 사용하는지 이해가 되지 않았다. 그러다, KMP 프로젝트에서 kotest를 이용해 테스트 코드를 작성할 기회가 있었는데 기존에 사용한 Mockk 라이브러리는 멀티플랫폼에서 사용이 불가하기에 Stub으로 구현해야만 했었다. 이 과정 덕분에 Stub이 무엇인지 이해가 되었고 그 과정을 설명해보려 한다. 테스트 더블우선 테스트 더블에 대해 먼저 알아보자.테스트 더블이란, 다른 객체와 의존성을 가진 객체를 테스트하기 위해 사용하는 것으로 "객체에 대한 대체물"을 의미한다.위 그림처.. 2025. 3. 22. [KMP] Kotest로 테스트 코드 멀티플랫폼에 적용하기 Kotest멀티플랫폼인 KMP에서 테스트코드를 작성하기 위해서는 Kotlin에서 제공하는 테스트 프레임워크인 Kotest를 사용해야 한다. Kotest에는 종류가 여러 가지가 있는데 나는 BehaviorSpec을 선택했다.그 이유는 BehaviorSpec은 아래처럼 given - when - then 형식으로 표현이 가능하여 더 체계적으로 작성할 수 있겠다고 생각했기 때문이다.class UiStateTest : BehaviorSpec({ given("테스트 조건 환경이 주어졌을 때") { ... `when`("테스트 대상 행위가 발생하면") { ... then("의도한 결과가 검증될 것이다.") { ... .. 2025. 3. 9. 이전 1 다음