Мне удалось протестировать мой ViewModel
, который использовал LiveData
, используя упомянутое правило - InstantTaskExecutorRule
.Но в моем случае объявление правила val было немного другим:
@Suppress("unused")
@get:Rule
val instantTaskExecutorRule: InstantTaskExecutorRule = InstantTaskExecutorRule()
Edit:
@Before
@Throws(Exception::class)
fun prepare() {
MockitoAnnotations.initMocks(this)
}
Edit2:
По какой-то странной причине я не могу воспроизвести это:Кроме того, я думаю, что проблема может быть в том, как вы инициализируете вашу ViewModel -
private val loginViewModel = LoginViewModel(context)
Я предполагаю, что он инициализируется слишком рано, поэтому его блок инициализации также вызывается слишком рано.Может быть, разумно создать его методом @Before
?Нравится:
private lateinit var viewModel: LoginViewModel
@Before
@Throws(Exception::class)
fun prepare() {
loginViewModel = LoginViewModel(context)
}