Android/Android Test

    [codelab 5.2 - 4, 5 ,6 ,7] Repository Unit Test (Fake Datasource with DI)

    우리가 일부 클래스(혹은 함수, 함수 모음등)에 대한 단위(unit)테스트를 수행할때 목표는 해당 클래스의 코드만 테스트하는것입니다. 하지만 특정 클래스의 코드만 작성하는것은 매우 까다롭습니다. 그 이유를 Repository 클래스를 예로들어 살펴보겠습니다. 목표는 해당 클래스의 코드 만 테스트하는 것인데 Repository는 작동하기 위해 LocalDataSource 및 RemoteDataSource와 같은 다른 클래스에 의존합니다. 다시말해 LocalTaskDataSource 및 RemoteTaskDataSource가 DefaultTaskRepository의 종속되어 있다는 것입니다. (DataSource are dependencies of Repository) DefaultTasksRepositor..

    [codelab 5.2 - 3]Testing Strategy - 테스트 전략 개념 소개(테스트 피라미드, )

    이 코드 랩에서는 test doubles 과 dependency injection을 사용하여 repositories, view models, fragments를 테스팅하는 방법을 배웁니다. 그전에 이러한 테스트를 작성하기위해 무엇을 어떻게 해야하는지 가이드하는 방법론을 이해하는 것이 중요합니다. 이 섹션에서는 Android에 적용되는 일반적인 테스트 모범 사례를 다룹니다. The Testing Pyramid 테스트 전략에 대해 생각할때 다음 3가지 관점에서 살펴볼수 있습니다. 범위Scope — 테스트는 얼마나 많은 코드를 다루나요? 테스트는 단일 메서드, 전체 애플리케이션 또는 그 중간 어딘가에서 실행할 수 있습니다. 속도Speed — 테스트는 얼마나 빨리 실행됩니까? 테스트 속도는 밀리 초에서 몇 분까..

    [codelab 5.1 -8 9 10]AndroidX 테스트로 ViewModel(LiveData 관찰되는지) 테스트

    CodeLab 05.1 Testing Basics 목차 (Task 8) [ViewModel]테스트 (Task 9) [LiveData] 테스트 (Task 10) multiple [ViewModel]테스트 이번코드랩에서는 대부분의 앱에서 공통적으로 사용되는 두 가지 Android 클래스(ViewModel & LiveData)에 대한 테스트를 작성하는 방법을 배웁니다. Task 8 : AndroidX 테스트로 ViewModel 테스트 설정 Setting up a ViewModel Test with AndroidX Test ViewModel에 모든 로직이 있고 Repository에 의존하지 않는 테스트를 수행하려 합니다. Repository 코드에는 테스트를 더 복잡하게하는 '비동기 코드', '데이터베이스' 및..

    [codelab 5.1 - 5 6 7] Android Test 종류, [일반 클래스] Local Unit Test, TDD

    CodeLab 05.1 Testing Basics 목차 (Task 5)Source sets : 계측(Instrumented) Test / 로컬(Local) Test (Task 6) [일반 클래스]를 로컬 단위 테스트(Local Unit Test) 하기 (Task 7) 테스트 주도 개발(TDD) 체험하기 1) 안드로이드에서 테스트의 기초를 학습함을 목표로 합니다. Android에서 단위 테스트를 작성하고 실행하는 방법 테스트 주도 개발(TDD)을 사용하는 방법 계측 테스트(instrumented tests) 및 로컬 테스트(local tests)를 선택하는 방법 2) 학습하게 될 라이브러리 JUnit4 햄크레스트(Hamcrest) AndroidX 테스트 라이브러리 AndroidX Architecture 구..

    UI Test (with Espresso)

    Espresso란? 1. UI 테스팅 기초 gradel 설정 android { defaultConfig { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" // 기존에 있음 } } dependencies { androidTestImplementation 'androidx.test:rules:1.2.0' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'// 기존에 있음 androidTestImplementation 'androidx.test.espresso:es..

    Android Test관련 실습 예제 및 소스 목록

    안드로이드 테스트 관련하여 공부할것들 목록 1. UI 테스트 espresso 2. Unit 테스트 Junit 3. Interface로 분리 Interface 로 나눠서 여러 행동을 정의할 수 있게 변경 4. Server와 테스트 동기/비동기 테스트 5. ViewModel와 테스트 로직 분리 6. Dagger 와 테스트 테스트 모듈/프로 7. Firebase Test Lab for Android 안드로이드 공식 테스트 샘플 코드 https://github.com/android/testing-samples Espresso Samples BasicSample -기본 Espresso 샘플 CustomMatcherSample - EditText의 힌트 속성과 일치하도록 Espresso를 확장하는 방법을 보여줍니다..