전체 글
![[Android/Testing] #6. 테스트 시작 전에 테스트 더블(Test Double) 이해하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZukBM%2FbtrN3C5CREd%2FMO6rorqVHmpeUqk09rePWK%2Fimg.png)
[Android/Testing] #6. 테스트 시작 전에 테스트 더블(Test Double) 이해하기
테스트 더블(Test Double)의 유래? 영화 촬영에서 배우를 대신하는 스턴트맨을 들어 본 적이 있을 것이다. 스턴트맨의 또 다른 이름이 스턴트 더블이다. 영화나 드라마에서, 무술 장면이나 실제 배우가 출연하기 힘든 위험한 장면을 촬영할 때 그 분야에 전문적으로 숙달되어 있는 사람을 고용하는데, 이들을 스턴트맨이라고 부른다. 출처 : https://namu.wiki/w/%EC%8A%A4%ED%84%B4%ED%8A%B8%EB%A7%A8 테스트 더블이란 용어는 xUnit Test Patterns의 저자인 제라드 메스자로스(Gerard Meszaros)가 처음 사용한 용어이다. 테스트 더블은 스턴트 더블에서 유래되었다. 테스트를 위해 시스템의 필요한 부분은 실제 배우가 아닌 스턴트 배우처럼 테스트 더블이란..
![[Github Action] 원하는 경로에서 Step 수행하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSfOZN%2FbtrNKgPEjwh%2FtMuxTlwRL1OPjYsG8KJeQ1%2Fimg.png)
[Github Action] 원하는 경로에서 Step 수행하기
어떤 상황에서 사용할 수 있는가? Github Action으로 다양한 작업을 구성 및 수행하다보면 가끔 루트디렉터리가 아닌 특정 디렉터리에서 커맨드를 수행해야 하는 경우가 존재한다. 그러한 경우에 cd(change directory) 명령어를 앞에 수행해줘도 되지만, 스크립트가 깔끔해보이지 않는다. 뭔가 마음에 들지 않는다. 그럼 어떻게 해야할까? step 에 working_directory 프로퍼티 이용하기 Github Action에서는 working_directory를 이용하여 특정 디렉터리에서 수행할 수 있도록 지원한다. 특정 디렉터리에서 원하는 step 수행하고자 할 때 working-directory 프로퍼티를 추가한다. 예시는 아래와 같다. name: Working Directory Examp..
![[Android/Testing] #5. 테스트를 위한 기반 프로젝트 생성하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCyWeO%2FbtrNwnBlBcW%2FjYOgUuRKktkOtpzQz1kQm1%2Fimg.png)
[Android/Testing] #5. 테스트를 위한 기반 프로젝트 생성하기
이번 글에서는 다양한 테스트를 위한 기반 프로젝트를 생성한다. 이후에 ViewModel, Dagger-Hilt, Retrofit 등 다양한 프레임워크와 함께 구글 안드로이드 진영에서 제안하는 클린 아키텍처에 대한 테스트 고민도 함께 진행을 하려한다. 그러한 테스트에 앞서 테스트를 하기 위한 프로젝트를 미리 생성한다. 해당 프로젝트의 전체 코드는 다음과 같다. (https://github.com/linuxias/Android-Testing/tree/setup_for_testing/Setup_For_Testing) 프로젝트의 기반 프로젝트 (?) 테스트를 위한 기반 프로젝트는 안드로이드 코드랩에서 제공하는 MarsPhoto 프로젝트(https://developer.android.com/codelabs/bas..
![[Review] 헤드퍼스트 디자인패턴 개정판](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw0ZjK%2FbtrNwnt0SSQ%2FBkpk0wMOkGiwR57t0CfLEK%2Fimg.png)
[Review] 헤드퍼스트 디자인패턴 개정판
디자인패턴은 원래 건축학에서 유래되었다 한다. 오랜 시간동안 다양한 건물을 건축하면서 마주했던 문제들을 정리하다 보니 많은 건축학자들이 다양한 방법으로 문제를 해결하기 위해 노력하였고 그 결과물들은 몇 가지 패턴을 보이게 된다. 그러한 내용을 정리하고 건축학에서 공유를 하며 점점 보완해가고 발전하였다고 한다. (가우디는 어떻게 저런 건물을 설계 및 건축할 수 있었을까.) 건축학과 동일하게 소프트웨어 분야에서도 시스템, 서비스 등을 설계하는 과정에서 다양한 문제를 접목하게 되었고, 해당 문제들을 많은 개발자들이 어떻게 해결하였는지 살펴보다 보니 건축학과 유사하게 특정 문제들을 동일한 패턴으로 해결해 나아가는 과정을 보이게 된다. 이러한 패턴들은 암암리에 개발자들끼리 공유가 되고 사용되었던 것을 네 명의 개..
![[Android/Testing] #4. Room Database 테스트](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frf1q3%2FbtrMnKcggeD%2FQKCPeFlMonsIKKkpzygLp0%2Fimg.png)
[Android/Testing] #4. Room Database 테스트
이 글의 모든 코드는 아래 저장소에서 확인할 수 있다. https://github.com/linuxias/Android-Testing/tree/main/Testing_RoomDB GitHub - linuxias/Android-Testing Contribute to linuxias/Android-Testing development by creating an account on GitHub. github.com 데이터베이스 코드 TestDao.kt package com.linuxias.testing_roomdb.data.local import androidx.lifecycle.LiveData import androidx.room.* @Dao interface TestDao { @Query("SELECT * ..
![[Android/Testing] #3. Unit Testing 입문하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAuI4q%2FbtrL8ZIfyhG%2FU0Rjxh2mqCBKPalRTgiM8K%2Fimg.png)
[Android/Testing] #3. Unit Testing 입문하기
테스트를 위한 라이브러리 추가 및 확인하기 처음 안드로이드 프로젝트를 생성하고 gradle module을 열면 아래와 같이 테스트 관련 의존성 모듈을 확인할 수 있다. testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' junit : 안드로이드, 자바, 코틀린을 위한 표준 테스팅 프레임워크 ext.junit : 안드로이드 프레임워크에서 테스팅을 위한 확장 라이브러리 espresso : 사용자 인터페이스(User Interface) 테스팅을 위한 라이브러리 여..