I'm trying to test ViewModel(AndroidViewModel parent), in unit tests(test folder) but when using
val application = ApplicationProvider.getApplicationContext<Application>()
it gives me this error
java.lang.IllegalStateException: No instrumentation registered! Must run under a registering instrumentation.
ExampleUnitTest
class ExampleUnitTest {
private lateinit var myAndroidViewModel: MyAndroidViewModel
private val app = ApplicationProvider.getApplicationContext<Application>()
@Before
fun init() {
myAndroidViewModel = MyAndroidViewModel(app)
}
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}
build.gradle
android {
testOptions {
unitTests.returnDefaultValues = true
}
}
dependencies {
testImplementation 'junit:junit:4.12'
testImplementation 'androidx.test:core-ktx:1.3.0'
}
If I use robolectric, I no longer get said error, but I don't feel that it is a good option, since robolectric is more for ui test.
I hope you can help me. Thanks.