본문 바로가기

분류 전체보기

(174)
[TDD] TDD 란 ? 최근 Unit Test 관련하여 스터디를 진행하고 있는데, TDD 에 대해서 명확하게 개념을 정리하지 않은 것 같아 한번 간단히 정리해 보려고 한다. 우선, TDD 란 무엇인가 ? Test Driven Development. 테스트 주도 개발의 약자로, 테스트를 통해 개발을 이끌어 나가는 소프트웨어 개발 방법론. 소프트웨어를 개발할 때, 작은 단위의 테스트 케이스를 만들어 반복적으로 테스트를 진행하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현하는 방식이다. 개념부터 필자가 잘못 생각하고 있던 것이 있다. TDD 를 기반으로 구현을 할 때, 테스를 기반으로 소프트웨어를 구현해야 한다는 것이다. 보통, 앱을 개발할 때, 테스트는 기능 구현이 끝나거나 일정한 부분의 개발을 완료 한 후 테스트를 통해 ..
[Mockito] Mockito를 사용해 Instrumented Unit Test를 해보자 Mockito를 사용하여 로컬 Unit Test는 수행해 보았지만, 계측 Unit Test는 해보지 않아서 한번 적용해 보았다. 계측 테스트를 진행하면서 로컬 테스트에서는 발생하지 않았던 이슈들이 발생하였고, 그것을 해결하기 위해서 찾아보고 적용해본 결과를 작성하고자 한다. 아직 스터디 중이기 때문에, 다른 방법으로 사용이 가능하다면 추가적으로 글을 작성할 예정이다. 우선, 계측 테스트를 위해 Gradle 에 라이브러리를 추가해주자. Truth 도 함께 사용하기 위하여 같이 추가해 주었다. 이전에 gradle 에 추가한 것과 동일하지만, testImplementation > androidTestImplementation 계측 테스트는 androidTest 에서 사용되기 때문에 해당 부분에도 적용이 가능하..
[Mockito] Mockito를 사용하여 Unit Test 를 해보자 (feat. Truth + Junit4) Truth에 이어서 Mockito를 사용한 Unit Test를 해보았다. Mockito를 사용하여 Unit test를 하기 위해서는, Mockito 만 사용해도 괜찮지만 이전에 사용했던 Truth와 Junit4를 같이 사용하여 진행할 경우 더욱 폭넓은 unit test를 진행할 수 있는 것으로 보인다. 지난번에 작성해 두었던 Unit Test 예제 프로젝트를 사용하여 추가적으로 스터디를 진행해 보았다. 우선, Mockito 가 무엇인가 알아보자. Unit Test 를 도와주는 Mocking Framework 아주 간단하다. 유닛테스트를 원활하게 사용하기 위해 가짜 객체(Mock 객체)를 지원해주는 프레임워크가 Mockito이다. Mock 객체에 대한 것은 필자가 예전에 간단하게 정리해 둔 글이 있으니 참..
[Truth] Truth를 사용하여 Unit Test 를 해보자 (feat. Junit4) 처음 학습하면서 작성한 글입니다. 필요시 추후 내용을 수정할 예정입니다. 틀린 부분이 있으면 언제든 지적해주면 감사하겠습니다 :) 지난번 Espresso 를 사용한 UI 테스트에 이어서 Truth 를 사용한 Unit 테스트에 대한 스터디를 진행하였다. Unit 테스트를 진행함에 있어서 Junit4 만 사용해도 되지만 공식 developer 문서에도 사용하는 것이 좋다는 언급이 되어있기도하여 Truth 를 사용해보자 생각하였다. Espresso 를 사용해보면서 테스트 환경을 어느정도 만들어 두지 않았나 싶어서 바로 Truth 를 사용해보도록 하였다. 우선, Truth 가 무엇인가 ? Guava 팀에서 제공하는 유창한 어설션 라이브러리 라고 안드로이드 developer 문서에서 언급되어있다. Unit 테스트..
[Espresso] Espresso를 사용하여 UI Test 를 해보자 (feat. Junit4) 처음 학습하면서 작성한 글입니다. 필요시 추후 내용을 수정할 예정입니다. 틀린 부분이 있으면 언제든 지적해주면 감사하겠습니다 :) Unit Test 에 대한 스터디를 진행하다, Espresso 를 사용하여 UI 테스트를 진행할 수 있다는 공식 문서를 확인할 수 있었다. 기존에 test 를 생각하고있지 않더라도 프로젝트를 생성하게 되면 gradle 에 junit 과 더불어 espresso 에 대한 implement 가 추가되어 있었는데, 이것이 테스트를 위한 것이라는 것을 이번에 처음 알게 되었다. Espresso 사용법과 함께, 필자가 Espresso 를 적용하면서 잘 되지 않았던 부분을 해결한 방법에 대해서 포스팅하고자 한다. 우선, Espresso 가 무엇인가? 간결하고, 신뢰할 수 있는 Androi..
[Lint] ktlint 를 사용한 Coding Convention 맞추기 Coding Convention 을 쉽게 맞출 수 있는 Lint 에 대하여 공부를 진행하다가, ktLint 라는 것이 있어서 확인해 보았는데, 적용 및 사용 방법이 간단하여 한번 사용해 보았다. ktLint 란 무엇인가 ? kotlin 환경의 프로젝트에서 사용이 가능한 오픈소스로, Android Kotlin Style Guide 와 kotlin Coding Convention 규칙을 준수하는지 체크해준다. 나아가, 코딩 컨벤션을 준수하고 있지 않은 코드가 있으면 커밋을 못하게 막는 등의 작업을 제한시킬 수 있으며, 옵션에 따라 자동적으로 수정까지 해주기도 한다. 자동적으로 수정까지 해주는 옵션이 있기는 하지만, 필자가 여러가지 테스트해본 결과 자동으로 수정하도록 하는 경우에 정상적인 수정이 이루어지지 않..
[Android] Modular Architecture 예제 처음 학습하면서 작성한 글입니다. 필요시 추후 내용을 수정할 예정입니다. 틀린 부분이 있으면 언제든 지적해주면 감사하겠습니다 :) 해당 게시글에 사용한 예제 코드는 하단에 링크로 추가해두었습니다. 만들어둔 클린 아키텍처 예제 코드를 사용하여 Modular Architecture 구조의 예제를 만들어 보면서 학습하였다. 디테일하게 생각하여 모듈을 나눌 수 있지만, 처음부터 많은 모듈로 나눠서 사용하게 되면 복잡도만 올라가고 불필요한 코드만 늘어날 것이라고 생각하여 많은 부분을 모듈로 나누어서 사용하지 않았다. 해당 모듈러 아키텍처 예제를 만들면서, 기존 클린 아키텍처 예제에서 여러 가지를 추가해 두었다. Coordination Pattern, AAC Navigation, DataStore 를 추가적으로 사..
[Android] UML Diagram - UseCase Diagram 이 전에 작성한 UML Diagram - Class Diagram 에 이어서, UseCase Diagram 에 대한 정리 글을 작성해보고자 한다. UML Diagram 에 대해 정확히 모르는 경우, 이전에 작성한 글을 읽고 오면 도움이 될 것이다. https://heegs.tistory.com/67 [Android] UML Diagram - Class Diagram UML Diagram 은 대학생 시절에 배웠던 기억이 있다. 하지만, 실제로 다시 그려보려고 하니 오래되서 그런가.. 잘 기억이 나질 않는다. 따라서, 내용을 복기할 겸 정리를 해보고자 한다. 우선, UML Diagra heegs.tistory.com 우선, 개념에 대해서 알고 넘어가자. 유즈케이스 다이어그램 (UseCase Diagram) ..