Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android java.lang.IllegalStateException:无法初始化插件:interface org.mockito.plugins.MockMaker(可选:null)_Android_Unit Testing_Mockito - Fatal编程技术网

Android 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

我正在做一些单元测试。但是当我想运行单元测试时,它给了我这样的错误

“java.lang.IllegalStateException:无法初始化插件:interface org.mockito.plugins.MockMaker(可选:null)”

我做错了什么

这是我的格拉德尔。我想知道我是否在其中添加了错误的依赖项,请帮助我:'(

这是我的单元测试代码

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() {

}