728x90
@RunWith(AndoridJUnit::class) 작성
dependency 추가해야 사용할 수 있음
testImplementation "androidx.test:core:1.5.0"
package com.ej.tmdbclient.data.db
import android.app.Application
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import androidx.room.Room
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.ej.tmdbclient.data.model.movie.Movie
import com.google.common.truth.Truth
import kotlinx.coroutines.runBlocking
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class MovieDaoTest {
@get:Rule
var instantTaskExecutorRule = InstantTaskExecutorRule()
private lateinit var dao:MovieDao
private lateinit var database: TMDBDatabase
@Before
fun setUp() {
database = Room.inMemoryDatabaseBuilder(
ApplicationProvider.getApplicationContext(),
TMDBDatabase::class.java
).build()
dao = database.movieDao()
}
@After
fun tearDown() {
database.close()
}
@Test
fun saveMoviesTest() {
return runBlocking {
val movies = listOf(
Movie(1,"overview1","pasterPaht1","data1","title1"),
Movie(2,"overview2","pasterPaht2","data2","title2"),
Movie(3,"overview3","pasterPaht3","data3","title3"),
)
dao.saveMovies(movies)
val allMovies = dao.getMovies()
Truth.assertThat(allMovies).isEqualTo(movies)
}
}
@Test
fun deleteMoviesTest() {
return runBlocking {
val movies = listOf(
Movie(1,"overview1","pasterPaht1","data1","title1"),
Movie(2,"overview2","pasterPaht2","data2","title2"),
Movie(3,"overview3","pasterPaht3","data3","title3"),
)
dao.saveMovies(movies)
dao.deleteAllMovies()
val movieReult = dao.getMovies()
Truth.assertThat(movieReult).isEmpty()
}
}
}
728x90
'안드로이드 > UnitTest' 카테고리의 다른 글
안드로이드 테스트 Mock Web Server (0) | 2022.12.13 |
---|---|
안드로이드 livedata 테스트 (0) | 2022.12.11 |
안드로이드 UnitTest Mock (0) | 2022.12.11 |
안드로이드 UnitTest (0) | 2022.12.11 |