1. Annotation 2. Mock Object 3. Method Stub 4. Spy Object 5. Assert 6. Verify 4. Spy Object class UnitLocalDataSourceTest { lateinit var unitLocalDataSource: UnitLocalDataSource val map = mutableMapOf() // 실제 Map 객체를 감싸 Spy 객체 생성 @SpyK val spyMap = spyk(map) @MockK lateinit var unitSettings: UnitSettings @MockK lateinit var testUnit: Unit @Test fun testPutUnit() { unitLocalDataSource.putUnit(tes..
1. Annotation 2. Mock Object 3. Method Stub 4. Spy Object 5. Assert 6. Verify 3. Method Stub class UnitRepositoryImplTest { @MockK(relaxUnitFun = true) lateinit var unitDataSource: UnitDataSource lateinit var unitRepository: UnitRepository private val unitRequest = "unitId" @Before fun setup() { MockKAnnotations.init(this) unitRepository = UnitRepositoryImpl(unitServiceApi, unitDataSource, sched..
1. Annotation 2. Mock Object 3. Method Stub 4. Spy Object 5. Assert 6. Verify 2. Mock Object class UnitRepositoryImplTest { // Mock 객체 선언 @MockK(relaxUnitFun = true) lateinit var unitDataSource: UnitDataSource lateinit var unitRepository: UnitRepository private val unitRequest = "unitId" @Before fun setup() { MockKAnnotations.init(this) unitRepository = UnitRepositoryImpl(unitServiceApi, unitDat..
1. Annotation 2. Mock Object 3. Method Stub 4. Spy Object 5. Assert 6. Verify 1. Annotation public class Test { @Before public void setUp() { MockitoAnnotations.initMocks(this); when(adRepository.getAd()).thenReturn(ad); } @Test public void testGetAd_Success() { val actual = getAdUseCase.execute(adId) verify(adRepository).getAd(adId); } } @Before 테스트를 작성할 때, 테스트 실행 이전에 공통적으로 필요한 객체를 미리 생성하는 것이 일..
유닛 테스트(unit test)는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차다. 즉, 모든 함수와 메서드에 대한 테스트 케이스(Test case)를 작성하는 절차를 말한다. 이를 통해서 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해준다. 유닛 테스트의 목적은 프로그램의 각 부분을 고립 시켜서 각각의 부분이 정확하게 동작하는지 확인하는 것이다. 즉, 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인할 수 있게 해 준다. 따라서 프로그램의 안정성이 높아진다. Wikipedia - Unit Test Why Unit ..
Copy of How to copy Sub Directory to another Git Repo Git Repository 통폐합 과정에서 기존 Git Commit History를 유지하는 것이 중요하다. 일반적인 방법으로 A Repo를 B Repo에 통합했을 때, A Repo의 모든 Commit 정보가 B Repo에 전달된다 A Repo의 특정 디렉토리 및 특정 프로젝트만을 B Repo에 통합해야하는 상황에도 불필요한 모든 Commit 정보가 포함되는 것이다. 이 문서는 A Repo의 특정 디렉토리를 B Repo로 통합하는 과정에서, 그 디렉토리 Commit History만을 B Repo에 포함할 수 있는 방법을 설명한다 Case. old-repo / a-sdk → new-repo Repository ..
이상하다! 분명 개발할 때 앱에 딥링크를 설정하였고, 잘 열리는 것을 확인하였는데 웹 브라우저에 딥링크 URL을 입력하여 앱을 실행하려니까 실행이 안된다! 뭔가 잘못한 것이 있는 것인가... 이미 배포는 되었는데... 등골이 오싹해진다 급한대로 adb를 사용하여 딥링크를 테스트해보자... ./adb shell am start -d myApp://main 딥링크가 잘 동작한다! 음..! 브라우저에서는 왜 동작하지않는 것일까...! 결론부터 얘기하자면, 웹 브라우저에 딥링크를 바로 입력하여 앱을 실행 시킬 수 없으며, HTML 태그를 사용하여 실행시켜야한다. Web Browser에서 DeepLink로 앱 실행하기 1. 링크 설정 앱에 설정한 딥 링크는 아래와 같은 포맷으로 되어있을 것이다. :// ex) m..
최근 클라이언트팀의 안드로이드 제품에 대한 CI / CD 파이프라인을 구성하면서 우리가 만든 제품에 대한 Unit Test Code Coverage를 알 수 있도록 하자는 요구사항이 있었고, 그것을 실현시키기 위한 조사에 들어갔다. 회사의 안드로이드 프로젝트는 단일 레포지토리, 멀티 모듈 구조를 가지고 있으며, Java와 Kotlin 언어를 모두 사용하고, Gradle 빌드 툴을 사용하고 있다. 구글에 Android Project Code Coverage 측정 방법을 검색하기 시작했고, Gradle 프로젝트에 JaCoCo를 사용하면 측정할 수 있다는 정보를 얻어 회사의 안드로이드 프로젝트에 적용을 시도하였다. 여기서부터 고난과 역경의 시간이 시작되었다. 구글 검색을 통해 얻은 Gradle 프로젝트에 Ja..
https://leetcode.com/problems/construct-binary-search-tree-from-preorder-traversal/ Construct Binary Search Tree from Preorder Traversal - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Return the root node of a binary search tree that matches the given preorder traversal. (Recall..
https://leetcode.com/problems/unique-morse-code-words/ Unique Morse Code Words - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: "a" maps to ".-", "b" maps t..
- Total
- Today
- Yesterday
- Android
- compose ui
- 코딩테스트
- android custom button
- 알고리즘
- 컴포즈 초기화
- Leetcode
- 알고리즘 풀이
- 테스트
- android compose
- android test
- android unit test
- 안드로이드 유닛 테스트
- AOS
- 구글
- 안드로이드
- Unit
- 안드로이드 커스텀 버튼
- 안드로이드 테스트
- 유닛테스트
- androud hilt
- unit test
- 유닛 테스트
- ViewCompositionStrategy
- button padding
- 커스텀 버튼
- 안드로이드 종속성 주입
- 안드로이드 단위 테스트
- 안드로이드 컴포즈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |