본 예제는 코드랩에서 제공된 TO-DO app starter code 앱 예제를 따릅니다. 예제 코드 관련하여 자세한 내용은 코드랩을 참조하세요. https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics#0
이번 문서에서는 뷰모델의 LiveData 에 이벤트 객체가 정상적으로 트리거되는지 어설션 구문을 적용하여 테스트해보자.
이전 예제에서 작성한 테스트 코드에 이어서 진행하도록 한다.
@Test
fun addNewTask_setsNewTaskEvent() {
// Given a fresh ViewModel
val tasksViewModel = TasksViewModel(ApplicationProvider.getApplicationContext())
// When adding a new task
tasksViewModel.addNewTask()
// Then the new task event is triggered
**// TODO test LiveData**
}
LiveData를 테스트하기 위한 사전 작업들이 있다.
InstantTaskExecutorRule 사용LiveData 관찰 보장이에 대해 자세히 알아보자.
InstantTaskExecutorRule 사용하기LiveData를 테스트 하기 전에 JUnit Rule 을 추가한다.
(JUnit Rule은 정의된 규칙들이 테스트 전 / 후에 실행되도록 한다.)
여기서는 InstantTaskExecutorRule 을 사용하는데,
이 규칙은 AAC에 관련된 모든 백그라운드 작업을 동일한 스레드에서 실행하도록 한다.