To obtain a viewmodel when using Hilt in UnitTest, you can use the HiltRule class provided by Hilt. Here are the steps:
dependencies {
// Hilt
implementation 'com.google.dagger:hilt-android:2.38.1'
kapt 'com.google.dagger:hilt-android-compiler:2.38.1'
// Hilt testing
testImplementation 'com.google.dagger:hilt-android-testing:2.38.1'
androidTestImplementation 'com.google.dagger:hilt-android-testing:2.38.1'
kaptTest 'com.google.dagger:hilt-android-compiler:2.38.1'
}
@HiltAndroidTest
.@HiltAndroidTest
class MyViewModelTest {
// ...
}
HiltViewModelTest
and get the viewmodel you want to test.@get:Rule
var hiltRule = HiltViewModelTestRule()
@Test
fun testMyViewModel() {
val viewModel = hiltRule.viewModel<MyViewModel>()
// Use the viewModel methods to test the behavior
}
viewModel
method provided by HiltViewModelTestRule
to get the viewmodel instance. You can now use it to test the behavior of the viewmodel.Note: You need to add the Hilt components to the test module or use the @UninstallModules
annotation to remove any component that may interfere with your test.
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2022-09-23 11:00:00 +0000
Seen: 12 times
Last updated: Jun 17 '22
What does the error message "1 timer(s) still in the queue" indicate in an Angular/Karma unit test?
What is the method to simulate the NestJS internal Logger using Jest?
Is it possible to undo ActiveRecord transactions in Rails testing without causing an error to occur?
Is it possible for Statsmodel's pairwise Tukey's test to produce a p-value that is negative?
What is the process for verifying the handling of command line arguments in arguments?
How can unit testing be done with Firebase and Flutter?
What is the procedure for testing scheduling in Laravel?
What is the method to simulate navigator.geolocation in a React Jest Test?