Android

이전 글 요약 이전 글에서는 mockk 함수를 사용해 Mock 객체를 만드는 방법에 대해 알아보았고, val userRepository : UserRepository = mockk() val contactRepository : ContactRepository = mockk() val userProfileFetcher = UserProfileFetcher( userRepository = userRepository, contactRepository = contactRepository ) every를 사용해 목 객체의 함수가 호출될 때 반환 값을 반환하는 방법에 대해 알아보았다. every { contactRepository.getPhoneNumberByUserId(any()) }.returns("010-xx..
안드로이드 메서드를 사용할 때 생기는 문제점과 원인 안드로이드 전용 클래스의 정적 메서드를 클래스 내부에서 사용한다면 테스트 시 문제가 생긴다. 예를 들어 다음과 같은 테스트 코드를 보자. import android.text.TextUtils import org.junit.Assert.assertTrue import org.junit.Test class ExampleUnitTest { @Test fun testTextIsEmpty() { val isEmpty = TextUtils.isEmpty("") assertTrue(isEmpty) } } 이 테스트는 매우 간단한 테스트로, TextUtils.isEmpty를 호출해 매개 변수로 입력된 문자열이 빈칸인지 확인하기 위한 테스트이다. 하지만 이 테스트를 실..
@AfterEach는 언제 사용하는가? @AfterEach를 사용하면, 각 테스트 이후 실행되어야 하는 작업을 설정할 수 있다. 예를 들어 영속적인 데이터들이 초기화 되어야 하는 경우 사용될 수 있으며, 대표적으로 테스트 시 사용하는 데이터 베이스를 테스트 하는 경우 인메모리 데이터베이스를 사용하게 되는데, 이런 데이터 베이스를 초기화 할 때 사용할 수 있다. @AfterEach 사용 예시 예를 들어 다음과 같이 MyDatabase라는 이름의 RoomDataBase가 있고, 테스트에 MyDatabase를 사용한다면, 마지막에 꼭 close를 실행해줘야 테스트 시 리소스를 정리할 수 있다. 이때, 다음과 같이 @AfterEach를 사용해 myDatabase를 close 해줌으로써 각 테스트 이후 데이터 베..
하나의 클래스에 대한 여러 테스트 만들기 테스트를 작성하게 되면 하나의 클래스에 여러 테스트가 작성된다. 예를 들어 다음과 같이 가변 인자로 받는 모든 정수에 대해 곱하기를 실행하는 SimpleMultiplier 객체가 있다고 해보자. class SimpleMultiplier() { fun multiplyAll(vararg numbers: Int): Int { return numbers.fold(1) { acc, number -> acc * number } } } 이 객체에 대한 간단한 테스트 케이스와 테스트를 작성하면 다음과 같다. 1. 일반적인 곱하기가 제대로 실행되는지 살펴야 한다. @Test fun `check_2_multiply_3_is_6`() { // Given val simpleMultip..
시작점과 현재 기준점을 연결하지 않았을 경우의 문제 아래의 Path를 보자. 아래 Path의 마지막 줄의 lineTo 함수는 이전 기준점인 (300, 100)와 (100, 100)을 잇는 직선을 생성한다. val path = Path().apply { moveTo(100.dp.toPx(), 100.dp.toPx()) // 시작 지점 (100, 100) lineTo(100.dp.toPx(), 300.dp.toPx()) lineTo(300.dp.toPx(), 300.dp.toPx()) lineTo(300.dp.toPx(), 100.dp.toPx()) lineTo(100.dp.toPx(), 100.dp.toPx()) // (300, 100)과 (100, 100)을 잇는 직선 생성 } 이 Path는 정상적으로 ..
Dev.Cho
'Android' 태그의 글 목록 (3 Page)