Android java.lang.IllegalStateException:无法初始化插件:interface org.mockito.plugins.MockMaker(可选:null)
我正在做一些单元测试。但是当我想运行单元测试时,它给了我这样的错误 “java.lang.IllegalStateException:无法初始化插件:interface org.mockito.plugins.MockMaker(可选:null)” 我做错了什么 这是我的格拉德尔。我想知道我是否在其中添加了错误的依赖项,请帮助我:'( 这是我的单元测试代码Android java.lang.IllegalStateException:无法初始化插件:interface org.mockito.plugins.MockMaker(可选:null),android,unit-testing,mockito,Android,Unit Testing,Mockito,我正在做一些单元测试。但是当我想运行单元测试时,它给了我这样的错误 “java.lang.IllegalStateException:无法初始化插件:interface org.mockito.plugins.MockMaker(可选:null)” 我做错了什么 这是我的格拉德尔。我想知道我是否在其中添加了错误的依赖项,请帮助我:'( 这是我的单元测试代码 package com.example.androidjetpacksubmission1.ui.detail import androi
package com.example.androidjetpacksubmission1.ui.detail
import androidx.lifecycle.Observer
import com.example.androidjetpacksubmission1.data.entity.TvShowEntity
import com.example.androidjetpacksubmission1.data.repository.RemoteRepository
import com.example.androidjetpacksubmission1.network.Network
import com.example.androidjetpacksubmission1.network.NetworkListener
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.mock
import org.mockito.Mockito.verify
class DetailTvShowViewModelTest : NetworkListener {
override fun onSuccess(msg: String) {
}
override fun onFailure(msg: String?) {
}
@get:Rule
var executorRule = androidx.arch.core.executor.testing.InstantTaskExecutorRule()
private lateinit var detailTvShowViewModel: DetailTvShowViewModel
private lateinit var remoteRepository: RemoteRepository
private lateinit var observer: Observer<*>
private val tvShowTitleExample = "Jumanji: The Next Level"
@Before
fun setup(){
observer = mock(Observer::class.java)
remoteRepository = RemoteRepository(Network.routes())
detailTvShowViewModel = DetailTvShowViewModel(remoteRepository,tvShowTitleExample)
detailTvShowViewModel.networkListener = this
}
@Test
fun getDetailMovie() {
detailTvShowViewModel.getDetailTvShow().observeForever(observer as Observer<in TvShowEntity>)
detailTvShowViewModel.fetchDetailTvShow()
verify(observer).onChanged()
}
}
private fun <T> Observer<T>.onChanged() {
}
package com.example.androidjetpacksubmission1.ui.detail
导入androidx.lifecycle.Observer
导入com.example.androidjetpacksubmission1.data.entity.TvShowEntity
导入com.example.androidjetpacksubmission1.data.repository.RemoteRepository
导入com.example.androidJetPackageSubmission1.network.network
导入com.example.androidJetPackageSubmission1.network.NetworkListener
导入org.junit.Before
导入org.junit.Rule
导入org.junit.Test
导入org.junit.runner.RunWith
导入org.mockito.mockito.mock
导入org.mockito.mockito.verify
类DetailTvShowViewModelTest:NetworkListener{
成功时覆盖乐趣(消息:字符串){
}
覆盖失败(消息:字符串?){
}
@获取:规则
var executorRule=androidx.arch.core.executor.testing.InstantTaskExecutorRule()
私有lateinit变量detailTvShowViewModel:detailTvShowViewModel
私有lateinit var remoteRepository:remoteRepository
私有lateinit var观察者:观察者
private val tvShowTitleExample=“朱曼吉:下一级”
@以前
趣味设置(){
observer=mock(observer::class.java)
remoteRepository=remoteRepository(Network.routes())
detailTvShowViewModel=detailTvShowViewModel(远程存储库,tvShowTitleExample)
detailTvShowViewModel.networkListener=此
}
@试验
有趣的电影{
detailTvShowViewModel.getDetailTvShow().ObserveForver(观察者作为观察者)
detailTvShowViewModel.fetchDetailTvShow()
验证(观察者).onChanged()
}
}
private fun Observer.onChanged(){
}
我遇到了同样的问题,它似乎与InstantTaskExecutorRule有关,但我还没有弄明白……我遇到了同样的问题,它似乎与InstantTaskExecutorRule有关,但我还没有弄明白。。。
package com.example.androidjetpacksubmission1.ui.detail
import androidx.lifecycle.Observer
import com.example.androidjetpacksubmission1.data.entity.TvShowEntity
import com.example.androidjetpacksubmission1.data.repository.RemoteRepository
import com.example.androidjetpacksubmission1.network.Network
import com.example.androidjetpacksubmission1.network.NetworkListener
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.mock
import org.mockito.Mockito.verify
class DetailTvShowViewModelTest : NetworkListener {
override fun onSuccess(msg: String) {
}
override fun onFailure(msg: String?) {
}
@get:Rule
var executorRule = androidx.arch.core.executor.testing.InstantTaskExecutorRule()
private lateinit var detailTvShowViewModel: DetailTvShowViewModel
private lateinit var remoteRepository: RemoteRepository
private lateinit var observer: Observer<*>
private val tvShowTitleExample = "Jumanji: The Next Level"
@Before
fun setup(){
observer = mock(Observer::class.java)
remoteRepository = RemoteRepository(Network.routes())
detailTvShowViewModel = DetailTvShowViewModel(remoteRepository,tvShowTitleExample)
detailTvShowViewModel.networkListener = this
}
@Test
fun getDetailMovie() {
detailTvShowViewModel.getDetailTvShow().observeForever(observer as Observer<in TvShowEntity>)
detailTvShowViewModel.fetchDetailTvShow()
verify(observer).onChanged()
}
}
private fun <T> Observer<T>.onChanged() {
}