Skip to content

Instantly share code, notes, and snippets.

View cp-radhika-s's full-sized avatar
🎯
Focusing

Radhika canopas cp-radhika-s

🎯
Focusing
View GitHub Profile
@cp-radhika-s
cp-radhika-s / MVVMTesting1.kt
Last active December 21, 2021 12:03
Jetpack Compose + MVVM + Kotlin Coroutine
@HiltViewModel
class MainViewModel
@Inject constructor(private val userServices: UserServices) : ViewModel() {
val state = MutableStateFlow<State>(State.START)
init {
loadUser()
}
data class AppDispatchers(
val IO: CoroutineDispatcher = Dispatchers.IO
)
private val testDispatcher = AppDispatchers(
IO = TestCoroutineDispatcher()
)
class MainViewModelTest {
@get:Rule
val mainCoroutineRule = MainCoroutineRule()
private val userServices = mock<UserServices>()
private lateinit var viewModel: MainViewModel
private val testDispatcher = AppDispatchers(
class MainViewModelTest {
@get:Rule
val mainCoroutineRule = MainCoroutineRule()
private val userServices = mock<UserServices>()
private lateinit var viewModel: MainViewModel
private val testDispatcher = AppDispatchers(
class MainViewModelTest {
@get:Rule
val mainCoroutineRule = MainCoroutineRule()
private val userServices = mock<UserServices>()
private lateinit var viewModel: MainViewModel
private val testDispatcher = AppDispatchers(
class MainViewModelTest {
@get:Rule
val mainCoroutineRule = MainCoroutineRule()
private val userServices = mock<UserServices>()
private lateinit var viewModel: MainViewModel
@Test
class MainViewModelTest {
private val userServices = mock<UserServices>()
private lateinit var viewModel: MainViewModel
@Test
fun `Loading state works`() = runBlocking {
whenever(userServices.getUsers()).thenReturn(emptyList())
viewModel = MainViewModel(userServices)
class MainViewModelTest {
private val userServices = mock<UserServices>()
private lateinit var viewModel: MainViewModel
@Before
fun setup(){
viewModel = MainViewModel(userServices)
}
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito.kotlin:mockito-kotlin:4.0.0'
//For runBlockingTest, CoroutineDispatcher etc.
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.2'