Gabriel
11/04/2020, 8:01 PMvar imageItems: List<ImageItem> by mutableStateOf(listOf())
private set
and then my mock looks like this
@Mock
lateinit var viewModel: ImageListViewModel
...
`when`(viewModel.imageItems).thenReturn(listOf())
but doing this gives me an error:
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object androidx.compose.runtime.State.getValue()' on a null object reference
would anyone know what I'm doing wrong?java.lang.IllegalArgumentException: Cannot skip the enclosing group while in an empty region
at androidx.compose.runtime.SlotReader.skipToGroupEnd(SlotTable.kt:222)
Zach Klippenstein (he/him) [MOD]
11/04/2020, 10:30 PMGabriel
11/05/2020, 7:45 AMjava.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object kotlinx.coroutines.flow.StateFlow.getValue()' on a null object reference
at co.g403.android.minderachallengev3.imageList.ImageListScreenKtTest.imageListScreen(ImageListScreenKtTest.kt:29)
at java.lang.reflect.Method.invoke(Native Method)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
`when`(viewModel.isLoading.value).thenReturn(false)
private val _isLoading = MutableStateFlow(false)
val isLoading: StateFlow<Boolean>
get() = _isLoading
Zach Klippenstein (he/him) [MOD]
11/05/2020, 6:52 PMGabriel
11/05/2020, 6:54 PMZach Klippenstein (he/him) [MOD]
11/05/2020, 6:57 PMwhen(viewModel.isLoading.value).the return(false)
, instead do:
private val isLoading = MutableStateFlow(false)
…
when(viewModel.isLoading).thenReturn(isLoading)
Gabriel
11/05/2020, 6:58 PMorg.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.