Unit Testing
Test Double이란 무엇인가? Test Double의 종류, 사용법 알아보기
Test Double이란 무엇인가? 다른 객체에 의존성이 있는 객체들은 테스트 하기 어렵다. 테스트 시 만약 의존성이 있는 객체의 진짜 인스턴스를 사용하면 이 의존성이 있는 객체에 테스트가 영향을 받게 된다. 이를 해결하기 위해 가짜 객체를 사용하는데 이를 Test Double이라 한다. Test Double의 종류 Test Double에는 Fake(가짜), Stub(스텁), Mock(목) 3가지 종류가 있다. Fake Fake는 테스트를 위한 가짜 구현을 하는 방식이다. 예를 들어 DB에 저장하는 코드를 가진 클래스가 있다고 하면 이를 메모리에 대신 저장하는 방식으로 가짜 구현을 한다. 즉, 프로덕션의 구현에 영향을 받지 않고 구현을 하는 것이다. 예를 들어 다음과 같이 데이터 레이어에서 Todo를 데..
Unit Testing에서 Test Double이 필요한 이유는 무엇일까?
Test Double이란? class A에 대한 테스트를 하고 싶은데 class B가 다른 class B와 의존성이 있을 경우 어떻게 해야할까? 이 경우 간단하게 생각하면 class B를 인스턴스화 하면 된다고 생각할 수 있다. 하지만 이런 경우 class B를 실제로 인스턴스화 하면 class B로 인해 class A의 테스트에 문제가 생길 수 있다. 또한 class A의 테스트가 class B에 의존성을 갖는 것 또한 옳은 테스트 방향이 아니다. 또한 어떤 경우에는 classB를 인스턴스화 하는 것이 불가능할 수도 있다. 이런 문제들을 해결하기 위한 것이 바로 Test Double이다. Test Double은 class B를 임의의 객체로 대체해서 class B의 동작을 모방해서 class A에서 사..
Kotlin에서 사용할 수 있는 JUnit assert 종류 알아보기 : assertEquals, assertTrue, assertThrows, assertNotNull
이 글을 쓰게 된 이유 Java의 JUnit을 기반으로 문서들을 보다보니, Java의 assert와 Kotlin의 assert가 다른 것들을 알게 되었다. 예를 들어 Java에서 asserThat을 사용해 동일성을 테스트 하려면 다음과 같이 작성해야 한다. assertThat("a", is("a")) 하지만 이를 Kotlin의 assert로 바꾸면 다음과 같이 된다. assertEquals("a","a") 이러한 차이가 여러개 있다 보니 Unit Testing을 알아보는데 방해가 되어서 이번 글에서 정리하고 넘어가고자 한다. Kotlin의 assert Kotlin에는 다양한 assert가 있다. 그 중 자주 사용되는 것은 assertEquals, assertNotEquals, Assert.assertTr..
IntelliJ, Android Studio에서 Test Coverage 확인과 Test Coverage의 한계점
Test Coverage 란 Test Coverage란 작성한 테스트가 작성한 코드의 얼마만큼을 테스트 하고 있는지에 대한 지표이다. Test Coverage 확인하기 Test Coverage를 확인하기 위해서는 Test 클래스의 실행 버튼에서 3번째 버튼 'Run [클래스명] with Coverage' 를 누르면 된다 . 이를 실행하면 MinuteValidator에 대한 테스트 커버리지가 다음과 같이 나오게 된다. 커버리지는 Class 단위, 메서드 단위, 라인 단위로 모두 확인할 수 있다. 또한 MinuteValidator 클래스 내부에 들어가 보면 Line 에 초록색 네모박스 표시가 되어서 어떤 Line이 테스트 완료되었는지를 확인할 수 있다. Test Coverage의 한계점 Test Covera..
IntelliJ, Android Studio에서 Test 결과를 시각적으로 확인하는 방법 : Gradle 사용
IntelliJ, Android Studio에서 테스트 결과 확인하기 IntelliJ와 Android Studio는 비슷한 테스트 리포트 탭을 가진다. 이 탭은 아래와 같은 화면으로 이루어져 있다. 이 탭에는 여러 버튼들이 있는데 여기서 원하는 테스트를 클릭한 후 Open Gradle test report를 클릭하면 테스트 결과 리포트를 확인할 수 있다. 저 버튼을 클릭하면 Gradle에서 생성한 테스트 리포트가 아래와 같이 나오게 된다. 테스트 결과 파일 경로 위 TestSummary는 보통 Chrome이 열리게 될텐데, 주소창을 보면 다음과 같은 경로에서 파일을 여는 것을 볼 수 있다. 즉, 위 Test Summary는 아래 경로에 생기는 파일을 여는 것임을 확인할 수 있다. [앱 경로]/[앱 명칭]..